QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

goto3d 说: 在线网校重磅上线MC2022&Inventor2022全新课程,虞为民老师、大表哥同事精彩讲解,快去围观!
2021-06-25
查看: 1298|回复: 0
收起左侧

[求助] 我新增菜单程序编译不成功,新手求助,望高手解求

[复制链接]
发表于 2010-12-31 19:54:32 | 显示全部楼层 |阅读模式 来自: 中国上海

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
% a6 Q* g1 ~6 L+ C  Q3 c. E, Z
* b" H0 J- C( e* G, X5 j请高手指点下: D) S. j; U7 p- ^( i5 I
0 z3 L, _4 Y0 |
// 258mj.cpp : 定义 DLL 的初始化例程。; O) }1 J3 G8 |) R# A
//  k/ B) u' `/ G& O$ G
7 x9 R% b. h( P# p8 [( r
#include "stdafx.h"* ~  a5 X4 C& `: a- T2 `! R
#include "258mj.h"
! ~4 @/ i6 L& U, A" {( m2 X
: q( ~/ o7 o  m+ y% t#include"ProMenu.h"
  m: C+ C5 y& ~& ?: @1 B/ G2 m#include"ProUtil.h"5 D* I3 _4 Z( g& n2 U# f
#include"ProMenubar.h"
/ J4 F7 f2 T' A% s+ ~
, o, F2 ^% r2 v4 A: J& E9 B/ U0 m#ifdef _DEBUG/ A+ U" M% G0 x" r# P
#define new DEBUG_NEW
+ a7 {# Q% H# E+ c( m#endif
: f7 S5 \  @# V9 J. H
/ p1 M+ f  \* J. c) P' K//
" E: w5 ]+ U7 q4 C! ]5 X1 v! H//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,9 ]! ?( u" w& \8 M- D
//        则从此 DLL 导出的任何调入
# N/ ?1 L, q; h! K* ~//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
/ h, n9 `% z; U* _* u//        该函数的最前面。: K% m5 x+ G% t# `& ]
//3 v+ Y* q. ?. R: ~/ P
//        例如:
0 v4 V9 i1 r- C//1 @: [% z& N$ N4 u' Q( C
//        extern "C" BOOL PASCAL EXPORT ExportedFunction()
' g6 j8 ^% N7 R, S: ]- I+ A//        {
8 O4 z& {6 |1 X( O! i//            AFX_MANAGE_STATE(AfxGetStaticModuleState());. _' e0 C6 d2 K5 l6 p* m3 s6 q7 ]
//            // 此处为普通函数体
$ m7 G) ^- a4 _: J( G' i4 O//        }
  R3 l( m$ B4 l$ \//2 _! m- Q# J" V, z$ T3 i  s
//        此宏先于任何 MFC 调用
3 ^! ^9 i4 j+ t: t% n. Q6 V& F+ Q. v4 ^//        出现在每个函数中十分重要。这意味着! m5 j* K9 I6 G0 {1 ^
//        它必须作为函数中的第一个语句
' |! T7 u1 `: [" D//        出现,甚至先于所有对象变量声明,$ W4 w& H& i2 H0 o+ K  X' u, Q
//        这是因为它们的构造函数可能生成 MFC
" K  b3 ^1 J% H/ N3 z  I7 k. X. S//        DLL 调用。
# }  P) j6 e$ x; G4 ^  d//) U1 k; ^6 w) e, Q4 G: j2 p$ U
//        有关其他详细信息,& _* ^3 `/ r; o+ \
//        请参阅 MFC 技术说明 33 和 58。
, y+ i2 M% l; l//  i+ u8 j! j1 }, L8 x! k$ @7 b
4 d6 \& i4 D4 q0 I( O( H% v! N# a
- n4 E* Y- v$ q" ~
// CMy258mjApp
0 Y7 _& e( _! W/ g9 w# o' Z( s3 Z4 J0 i% Q5 |9 j- t
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)6 @. H- d7 z3 N( C/ f
END_MESSAGE_MAP()& k+ _; S7 r  h: U3 O

3 A7 V  @9 S, x9 c3 D8 Y! M
- }1 ]- `7 X" \% b6 k// CMy258mjApp 构造, K3 \. O5 {7 R. u3 B
- D8 }6 k; H7 t. W4 a2 H
CMy258mjApp::CMy258mjApp()
# \3 H5 D/ P& A: f) N+ O  Z{
7 m/ {- F1 U: ~8 Q    // TODO: 在此处添加构造代码,
, a+ n6 M& p- m2 r1 ^% W    // 将所有重要的初始化放置在 InitInstance 中
6 l! z0 d6 N/ o}+ @) E6 K8 J5 p- T0 U

: V0 o4 z" R- W) S- M: Y& d; Z& s" ?& B/ Z1 a3 a( t. e
// 唯一的一个 CMy258mjApp 对象* F- G7 J; u. Z0 @8 B3 }

/ R# S1 I. J: m2 @6 t8 C8 \. VCMy258mjApp theApp;
" d, |) r; X6 r1 a1 l6 Q' E2 L' t3 Y( H8 E  K3 ~- e
# ~3 Y3 a9 ~* F* ^
// CMy258mjApp 初始化
0 v3 d, ^+ ?1 E; O/ K( Y
$ [9 j9 }( k" ]2 F3 R. _BOOL CMy258mjApp::InitInstance()' A: e. r2 u8 V" B* n4 l$ P; b
{
. m* N1 \5 J) |6 c0 j" J    CWinApp::InitInstance();
5 H5 t5 V; _+ o  j( s. N% N
& n+ [0 Q* k8 _3 e: u4 Y5 r" Z* i$ W1 H    return TRUE;
5 `# N0 V2 l/ F! F
! d( j- N+ t' e2 J7 N+ q! c; j6 Y4 P! R6 Q/ \& E" H& d
extern "C" int user_initialize()
6 J* u& I& i( ~" [; O# H{
  l+ Y: A2 e! N$ S     ProError     status;' q2 }. |" Y, V; d; [2 D+ j
     ProFileName  message_file;1 E+ S) O2 T1 Z) e
     uiCmdCmdId   cmd_id1;
; P9 X$ P( x) U4 w) o8 D# l     uiCmdCmdId   cmd_id2;
% C' U( z6 ~9 @, @6 }5 u9 G$ W' o! _  p( }0 J2 ], N% `9 J
     ProFileName MsgFile;- F/ z& M4 O( n$ Y/ [! {, l6 G
     ProStringToWstring(MsgFile, "Message2.txt");8 F! l& d6 U9 F3 d
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
6 D& ]& w  i0 ?, @2 p/ h, H+ C, K5 a+ E) `
     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,9 M! o5 x, G) x
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
$ ~- _& \7 K# f     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
; o# o- h* ~& x" [) _$ F# l4 {- J& ?              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));
' D, c* A$ m  M( a
* B3 S1 c% ~+ ~! Q6 w     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
( c* e9 g1 P% e& A( y2 e! N- y1 F              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);; H% u; ]1 m" Q; l
     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,% E# r7 D: A. ]7 c. A/ i( B6 c
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
9 l# c8 r# G: l) W8 V3 q5 r
5 t3 [  ~' ?% X& Z8 w! V5 k     return status;1 ~  Q, P$ G4 l$ ^" ?
}+ y) k: w. i) ?; V4 p0 Q0 R/ |
9 ~, h: D$ O& L3 k: H
extern "C" void user_terminate()6 I& {7 X; E1 v
{* l. j0 X" p& z9 M; ?
   AFX_MANAGE_STATE(AfxGetStaticModuleState());3 x% \0 T) q- O3 X: [4 P, n
}
& U% W& ?- r& w, V. g0 I- U/*================================================================*\
( p, m: X/ d( H* |! Q0 C" LFUNCTION: AccessDefault()
0 k1 t8 V0 n) G0 r9 G3 Z% t\*================================================================*/
  u1 g. O  d: o; u* }# L$ ^static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
2 ?+ C" ~- \' \{
3 J. v  u7 d5 h: a( Z6 e& s    return (ACCESS_AVAILABLE);
% ?- j; u4 Z- i; ^5 A1 E$ p/ H}3 T$ f6 F1 h+ H) l2 A' }
int messagebox()/////////消息框) r  |# c. U" n4 o  _- ]. j3 e  d
{
) B# O( B) m' L8 R    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
- k3 j/ B# R5 K1 m- s( C! _/ O    return(0);1 Z7 Z6 l. r; I( h3 R$ e
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表