QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
' [: O) J* s$ k8 h& B0 j
; d+ i$ M; [. E) Y; Q! g请高手指点下
( t0 U! D" a6 b( Z6 t6 y$ k
, X( R( c/ d, K/ n4 P// 258mj.cpp : 定义 DLL 的初始化例程。
: I2 q! N6 C& ~0 k* E. o//5 |% f& S' R$ o- s7 x' P2 x

2 H8 ^  F" {7 ~) [1 [6 c( ~#include "stdafx.h"$ X  v$ J: X, x9 t, |
#include "258mj.h"
" L% h' O9 v* ~$ x( R
3 z: Q# J: \! T#include"ProMenu.h"2 u' X4 S' R. C/ X( R
#include"ProUtil.h"# ~' X! `- I. t, r7 U1 F
#include"ProMenubar.h"
0 Y& ~3 E3 _7 N. {' Y/ Y# Y; C/ |4 n6 L3 Y9 A  w! f& I
#ifdef _DEBUG% Q- O/ c6 o) A- f/ Y/ L8 v+ h" x3 Q
#define new DEBUG_NEW
' R" h, c: j5 ^4 ^#endif" E: z) o3 T  U) f

; y$ m3 H  P, ?2 a//7 ]: I5 s: G* [; V7 T1 [
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
& b4 \; [: c" E6 Z//        则从此 DLL 导出的任何调入
' }7 |: q9 [  C: S+ K//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
4 @% S5 y' D8 @/ R; |//        该函数的最前面。
: }' v2 V3 ^: q! }7 }/ k2 o//
0 b1 w& h# g% w! F. A//        例如:
6 C; ^0 b' n7 p, }  G7 ]8 E//
2 T1 I, a9 U& A4 }! }, H//        extern "C" BOOL PASCAL EXPORT ExportedFunction()9 K. w5 |) d3 {! L: G0 {+ @
//        {! V( S5 L2 E' q# n7 r" l
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());8 @4 N: S2 ]% j' j4 U
//            // 此处为普通函数体
* z% H, K6 ?" O. v( |6 l//        }
8 T- X- s' O3 |/ A4 y4 D* f6 W7 [//
2 V$ ]* ?: U# E//        此宏先于任何 MFC 调用
+ c2 ^* G& }9 v1 x; \( J0 p//        出现在每个函数中十分重要。这意味着
6 M( c; p. e" r6 u5 ~: B//        它必须作为函数中的第一个语句) z& g: x: w, h
//        出现,甚至先于所有对象变量声明,8 A; a* g8 b+ g! ?
//        这是因为它们的构造函数可能生成 MFC$ f1 X" M+ U2 @8 x( k# }
//        DLL 调用。7 H' {" I' }* g
//7 M9 G9 G7 y1 J; d1 M
//        有关其他详细信息,- Z3 ]0 p! W& ]/ p0 p
//        请参阅 MFC 技术说明 33 和 58。* I! p6 h% I: w/ F  ]+ Y' B
//) {& c- }& Z; N0 V( @2 |
5 p* q5 M! U& }
. r. j( z  r8 f4 `$ u! G7 Z" D
// CMy258mjApp# E) K! G) o  t( T7 A2 H  u: {
5 k  K# _% K9 g% S& w
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
( v# y) C" \" [; {! x# c, ~2 jEND_MESSAGE_MAP()$ B: a4 f9 s) B9 `. k& c

0 m2 j: ^* H/ e# [$ P7 N' S4 g& h
6 _, N' T6 r8 G8 g  n3 y, G// CMy258mjApp 构造
$ r$ x# ]5 K* ]8 X: @$ {! H7 i
9 h3 \1 _- U- O, PCMy258mjApp::CMy258mjApp()* f8 P; ~* d, m* {% D2 k' v  z* j
{% ]5 ?; X' k; |4 {
    // TODO: 在此处添加构造代码,
6 |9 A8 ?* L& Q$ [! r    // 将所有重要的初始化放置在 InitInstance 中9 Q8 s: O- \7 Q% m- |0 M
}
2 \, d3 f) V3 }+ s! E& ~
3 e. j/ j7 d4 C$ E6 \& I& p8 ]% ~- [% A
// 唯一的一个 CMy258mjApp 对象
# _: w! D2 S3 q6 |: g% q; X4 Q6 M1 T  b! g2 B3 c/ X
CMy258mjApp theApp;
: F+ b% }/ l7 M, g9 l
: E/ c; G: z) B/ M) [% u
4 u3 h* ~1 I6 ~3 E// CMy258mjApp 初始化
$ b4 k; m5 l& o6 L. J5 Q6 u. n2 v: C7 p+ g8 F
BOOL CMy258mjApp::InitInstance()" [9 Q5 O7 a  L6 e
{
8 w. G, \5 V% t4 J7 ~: m    CWinApp::InitInstance();
9 p* r6 D" C4 C) _2 b$ H% j, O' f
    return TRUE;
) U2 d# ^  l2 D( f' a
, N9 `7 {; w( Q" x5 @, V. c6 F# _4 r, _7 o
extern "C" int user_initialize()! a3 ?" m) q, e  n% a* i$ T! p
{4 o" T4 c$ l' G$ F
     ProError     status;% N& y% q! t9 r7 |5 l8 R7 B1 X( t
     ProFileName  message_file;1 H/ H0 O1 [0 D% F( S% |
     uiCmdCmdId   cmd_id1;
; k8 |% y. `6 |     uiCmdCmdId   cmd_id2;
) }/ V" P4 [0 `5 R7 E: {2 i* t+ s
/ ?! K- Y9 E) P/ N9 o     ProFileName MsgFile;
( A# s  o1 h4 Q2 U) _7 L& l     ProStringToWstring(MsgFile, "Message2.txt");
& p  Q9 f3 o6 ^     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
8 i: X- {# H! E' ^; i3 P
4 I  ~* D1 k6 W! b7 W4 @     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault," P/ H" F& J; q* W' d, V$ _
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);+ R( B/ F( s' X) w7 T+ v: R2 z9 p
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,/ M* X1 N. W, H! U0 Q4 u
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));
' x1 L! l. Q) \8 y- _5 [
8 [& ^6 y. y) Y     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,, z- i0 L% ^4 N  {' v
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
9 j; [2 T* ]6 z7 z0 ]7 u     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,; X( z% T, J/ m& S5 g/ ?  r
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
9 e/ Q9 M/ W& _7 Q% J, b
1 @: {* n& v3 s5 E     return status;" v* i4 g) j4 h( t
}4 L  @3 G  T  E2 ?2 R
! y+ f' \4 H1 }$ {4 s1 r) W5 W
extern "C" void user_terminate()% F. m" Z. o+ X! w5 O: f
{  }  Z  ?: F' v3 v# K2 j$ V) e
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
$ c' W3 n0 L) @; D}
" A6 Z4 g! u3 A# @& Q& Z" i/*================================================================*\
9 {1 ^) D! }! m, S1 P  |FUNCTION: AccessDefault()
3 u5 J# s. C2 e& M7 a\*================================================================*/
. s" i# C' y% b$ s+ O& H6 C1 Ystatic uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
+ r7 p4 D& U0 t6 V# ^; z" X{
6 p2 k0 j! r& t% t3 N9 X    return (ACCESS_AVAILABLE);
$ U& {& q5 V0 P, l}
* X8 f$ y- t) C+ F) {9 lint messagebox()/////////消息框
9 q, x8 {; k' z" E. i! @3 h& s{8 J0 ^3 Y+ S% l# h' m
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框% r5 h# N3 P1 X) _9 W! Q
    return(0);0 p1 q/ K' m2 d3 q8 J
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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