QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
& r% T# N7 X( f$ _% \
3 p, |! S  Y6 }8 k请高手指点下! i' [  |3 p* O. @8 W

( u8 A2 P* ]! Y, J// 258mj.cpp : 定义 DLL 的初始化例程。
  `& `' B/ B% m" v& Q# G3 Z//
* h/ `5 D" [/ h# }9 M/ b! h6 @' _- b% U4 @
#include "stdafx.h"
. e! r0 a" r5 L#include "258mj.h"; r2 x5 X' P- U; I, c
+ }. M3 p( s) ^* ~6 V8 \+ W
#include"ProMenu.h"! `: T! {6 S) p/ n3 K4 H, t
#include"ProUtil.h"* ^% }* j( G3 x4 o: M: W8 _2 ]
#include"ProMenubar.h"8 c( a  S3 t4 k- m5 T
* ]* x% h5 f5 X* X1 B- y* K4 m' H- v
#ifdef _DEBUG
8 Y: \# N) r" g: |1 V5 t#define new DEBUG_NEW, x$ I/ J) _+ A- J8 [, ^
#endif
; k( s" |& V6 |! t5 i4 [# n
9 Q6 `3 X( Z; Q5 \//7 C, A4 w( F1 R0 l8 n. g4 P% t
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,+ o6 |" n! k. z: O* x9 R1 j
//        则从此 DLL 导出的任何调入
# ]& b7 _) \: x. h8 e//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
) {. ]& i5 v" V9 d//        该函数的最前面。
# ?+ Q4 T4 ?, x1 g0 d( O//
8 R4 i! M! D2 H//        例如:
7 D& C. w7 L8 y/ D* n" N, l3 D! q$ ]//
' T1 \5 @% X9 U/ M0 ?& \# I4 Q//        extern "C" BOOL PASCAL EXPORT ExportedFunction()
8 C0 @' o  w. i4 y$ ?7 ~//        {5 |$ D+ J. u' t( J, ^- Y3 F
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());4 o7 `  L" N: P" J
//            // 此处为普通函数体
8 p+ G5 f' t) x, a; B4 s5 u! J/ H//        }
# t8 b+ W, c6 z3 e! l. i8 ~7 d7 _% u//  t4 l) [& G+ y! m1 @3 J6 j: B
//        此宏先于任何 MFC 调用
$ i3 C; z+ x3 d+ n0 _4 F//        出现在每个函数中十分重要。这意味着& g  v1 m4 H( J9 X& |& H
//        它必须作为函数中的第一个语句
! z% `" j) k  ?, U) S; e//        出现,甚至先于所有对象变量声明,
: F  m' }8 [5 |9 t3 M7 @//        这是因为它们的构造函数可能生成 MFC
# p7 \) z8 a0 W  _6 d1 {" M//        DLL 调用。+ d5 v, {0 k0 N" }# h
//
: f2 u" Y8 V: N. Z//        有关其他详细信息,) _) h  X1 \0 I2 i
//        请参阅 MFC 技术说明 33 和 58。0 z. R& {  ~% A9 C8 f9 g9 [  J
//; `: o2 a' ]& Q7 f/ J! p
+ e* C9 \6 L" b2 y# y7 V6 z: P# }
) f( s: A* J7 T2 [. C- I. F
// CMy258mjApp: G, D  h+ r9 p3 m8 y
3 s; ?" x& ?+ i/ z1 t: }- j
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
5 y2 }1 ~2 O& a' z! DEND_MESSAGE_MAP()) ~6 c/ `) S5 F( k

, Y0 D. |  ^8 I6 |- x* ?- v
/ M0 v- n6 ]6 e) i* v4 W4 c// CMy258mjApp 构造" c9 w+ p, A1 U# F) i

/ M8 C: r1 Q. k3 N5 h# X; {6 ^9 bCMy258mjApp::CMy258mjApp()- c7 X1 Y* q) W8 q
{: ]& X% H& U) P/ G! x9 {" O' I' v
    // TODO: 在此处添加构造代码,. S% ]- O: H6 |- \
    // 将所有重要的初始化放置在 InitInstance 中  a6 V' m& p3 t! ^$ Q
}
/ R6 R8 K  B7 S% V! b5 |" r* Z" U5 |: R% a; t4 ^: r

( {- p. _( b  W// 唯一的一个 CMy258mjApp 对象
7 |4 [2 x- H0 j
4 s: b1 m2 A' I* z6 s, }' c$ QCMy258mjApp theApp;
; A2 M! S  T) ^6 @
& C4 Y1 G/ D5 M
' w) h8 _7 _2 _7 i6 Q// CMy258mjApp 初始化5 ]- }+ }; U4 J. h

4 p( |( s& I& }2 eBOOL CMy258mjApp::InitInstance()
: B( T/ O# L" x( }5 @, p{
0 v# }0 k; L9 ^. N: o- ]4 T    CWinApp::InitInstance();
7 Y9 p% |7 H. Q" m# [; e5 n8 f. @: l5 A  y+ t- l9 d: \0 B
    return TRUE;! y; a; U( Z/ `/ z# |

! ?0 R7 O( t; P% U* e8 d+ h7 e+ @& i- O6 b
extern "C" int user_initialize()- S- }' X( C, [. w
{
! f) y: D8 l9 L. e8 N     ProError     status;
5 m' _" u( w; @7 y; B8 y3 u9 ^- c     ProFileName  message_file;  d$ i$ l: B, R4 H( }3 A
     uiCmdCmdId   cmd_id1;$ v2 E" J% f; Y* w" ^+ R( R
     uiCmdCmdId   cmd_id2;) }( D) I3 s, A

- p: i% k: n* y6 d     ProFileName MsgFile;/ ^5 J& E4 `7 R4 F
     ProStringToWstring(MsgFile, "Message2.txt");- M0 z" s: Z( K5 C5 ^" O3 O- Q9 _
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
5 g  U1 h& P0 _6 ?- Y0 Z2 @1 E4 I7 C4 g. b( ?- H4 _) d
     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,8 M! r! \  L  o6 n: H
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
+ D: _3 S2 X, n( l% y' Q     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
  _0 m" p7 X6 s, _7 r              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));; N2 h0 _8 b- |" Y: p1 g

" ^, @5 A6 {: }2 m* D! m     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
7 R( x6 r  |# L( D9 b, K6 P              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
1 B5 A$ |3 v' Q: l# D7 w& T     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,
3 V- W% f% d/ ]) K" _8 z              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
% J) C  ]" O" h- z2 i" V: Q& A& m# i4 A" k
     return status;
8 s/ X1 l7 n9 ^( T$ t$ u}
! V- j: m7 C4 l4 o9 I+ P
- c: c1 _7 v# t4 D3 M) ?extern "C" void user_terminate()- {0 d, a! l4 w5 M0 ]: z) Q
{
- v9 a1 z* T" o! F- g( I* B; I   AFX_MANAGE_STATE(AfxGetStaticModuleState());, R( \4 v1 Z  ]) f: J
}6 c( K; }7 k3 Z
/*================================================================*\
# i: b9 a5 ]& c" i" C2 u# J  R+ mFUNCTION: AccessDefault()
6 o" T- b+ o/ f, o( s# i\*================================================================*/
2 f, F1 y8 m# N/ I! `static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)! F6 p# h! J/ K8 Z
{
7 ^- l" q1 A9 U9 y+ E8 X    return (ACCESS_AVAILABLE);
, D6 ~6 ?; [% G" {}
* M: h/ Z1 R0 i/ N& P* Xint messagebox()/////////消息框
. I8 Q2 y. A! P! @5 A; x{& w% p/ p8 p0 t2 `+ N8 Q
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框& S6 e5 c1 g/ t' W1 o/ p  l
    return(0);* B  i/ L: _* \; m) F. D3 d
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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