QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
8 Y' G4 L; M6 ^, H' n8 S8 m$ X$ n' V% Z) K+ V9 Q/ W3 Y% g5 h+ F. W
请高手指点下
& p8 ^7 T! l: [. t
9 _& @0 v+ L5 ~, I4 j// 258mj.cpp : 定义 DLL 的初始化例程。
2 @3 N3 B; w+ {% L) g//
3 {/ F. n# A+ s* y7 K8 [8 h5 w' Y7 m9 p8 _! \
#include "stdafx.h"
9 R; B" M5 s( R; u& @! U0 r" }#include "258mj.h"8 _7 T! M" h) ?( R$ F9 {3 |

% b* f2 \; I: D$ l8 B& a#include"ProMenu.h"3 h2 J+ L; h+ `, u" p
#include"ProUtil.h"' v0 s# x1 \0 q) j1 S
#include"ProMenubar.h"
3 `, h$ s* @; {9 X8 R  L  C0 V2 H& @+ _. {. \8 N
#ifdef _DEBUG
2 _% `. i/ R/ y; a7 E* V6 R#define new DEBUG_NEW$ i! H# K6 f: v1 F8 s9 T- f
#endif
# Y( P! `; \8 y7 b2 w! x+ l+ I2 I+ V
//
  ]' Z; j+ Z. |2 I% f9 F//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,% z0 Z( s1 S; x& p
//        则从此 DLL 导出的任何调入  N. v1 Q5 }5 s: z2 C# h8 P! q; t; o
//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
  k' c4 e8 v; Q& R) V//        该函数的最前面。
* [3 j) b8 F, \: L//, |  z, E. V+ W0 v& H) ~
//        例如:: `: R* @3 ~' d% j( E" |
//
* l& u  ^! d- V( W* n//        extern "C" BOOL PASCAL EXPORT ExportedFunction()* _0 a! S- h6 }2 o* W
//        {2 S4 I. }: p; v& M& V8 w  N
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());
* U' n- m; w3 y  O) u# q//            // 此处为普通函数体3 v! [5 y$ k: k! S2 G5 t& K
//        }
* P/ t; w" f  C& x( M//6 A/ B' {! y9 N; ?* L  L
//        此宏先于任何 MFC 调用* c$ d" K: @- h  `; {, S
//        出现在每个函数中十分重要。这意味着+ v$ s, U# q+ r8 @: |) F
//        它必须作为函数中的第一个语句6 g8 O, h% ~  n5 Y2 y3 {6 x
//        出现,甚至先于所有对象变量声明,
4 X3 x* T$ ~& |( g) V- O//        这是因为它们的构造函数可能生成 MFC/ h: @4 m! X  }& p" Z
//        DLL 调用。
/ v8 F) t' w& t//2 p" P  l" L) n: K
//        有关其他详细信息,9 o8 d4 T- m/ r+ g4 o7 i6 O1 Z9 t
//        请参阅 MFC 技术说明 33 和 58。
7 f* i; h/ m% f# ?0 K8 `- ^2 x//$ D* t0 Y0 x* p' f3 f) V8 T% f

2 ^, S. X+ n0 X  a- I* P0 g- A
1 n: @4 O" \* l! Y// CMy258mjApp  Q7 g) ~1 M8 Z6 i4 t) B) F

# K# j/ q# k% J: A8 D- P) t$ s3 tBEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
  M3 r- @7 b9 M  NEND_MESSAGE_MAP()6 D2 s* H# j/ E5 T- n3 ]2 B3 o
+ t* r& s& a( ]9 T+ q
- t: i3 {( N: c$ c" V5 p
// CMy258mjApp 构造
9 s, `0 _. o7 o1 }% g- h
9 A8 ^" k3 |- a) T/ aCMy258mjApp::CMy258mjApp()
0 J2 O" o3 s+ i8 ~2 l& ~' B{9 [6 _5 |6 [  Z
    // TODO: 在此处添加构造代码,
% s: n0 j' s# P$ B" U; }0 u    // 将所有重要的初始化放置在 InitInstance 中; a' V- N# Z% |& Y  [
}
% h8 _( E. H9 I( x4 J" V6 b/ c5 O3 _. m5 b  K# i

+ E+ h" h: M7 h! r- w// 唯一的一个 CMy258mjApp 对象* `2 g  y& x5 |" t) l
/ E+ g& L0 I+ F
CMy258mjApp theApp;
* a" {+ o$ s+ `% i0 Q
# }2 c; ?  q5 @1 a( p3 U4 a3 F; T" _/ a: r
// CMy258mjApp 初始化6 f  o7 o* l- B7 ^5 m

& ~  b7 R4 l3 I: _/ OBOOL CMy258mjApp::InitInstance()
, E. U  O) ?" l7 M8 `, E{
; A6 T% R8 `9 S8 B; q2 i    CWinApp::InitInstance();
5 `/ |& ?9 Q6 O& s! ?
7 s- b* S, u+ V( ~4 ]  r    return TRUE;
! ^3 M" j4 [, W  @7 S# l
& J. U; A  |% [: j$ X+ \
! m$ b$ S& J. M& x( B" zextern "C" int user_initialize(). o! h, H* y. n9 q3 f' u  L
{0 V# C9 M9 e  J' U) i% X- E
     ProError     status;
% v/ D; Q9 y& E     ProFileName  message_file;0 c( n/ `$ p4 j2 l( g
     uiCmdCmdId   cmd_id1;7 r/ ]* _* d, n! W. T) B  B' K
     uiCmdCmdId   cmd_id2;
0 R' K2 H% u$ ~* I
3 ^* o; h9 o$ C2 R# p. h% ^     ProFileName MsgFile;
4 }' O; Y6 @/ S5 q     ProStringToWstring(MsgFile, "Message2.txt");
' P& d( x) H# \& b: @/ o9 A; I     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);3 ^/ }; q* b9 ^- h4 Q- A, W

3 m& O. b( K  `/ K7 f+ p; p     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,- R% R1 A5 G4 y) e7 D0 t, b5 r5 p- y
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
! A. k( k: h! ^$ {' P7 j* t     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
/ \+ B. Z: |+ z  O6 f              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));  l" T  M6 |/ c7 a7 }, X" ?7 E
2 h' d% @5 a. S
     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,6 O* U3 q7 F* ^4 n' C
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
1 e6 K/ ~/ e1 m" I  q; [0 L% Z! p     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,
! t  `+ ?( S3 A. w& @              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));) w5 T+ Z" S" _, _
4 q5 q" \: s7 ^
     return status;
* n6 L. c6 F7 N2 \3 u* ]) b/ [3 Z}- V: \, u& {2 Z$ u  R6 Y. J, J
0 v* m) o% O' w" H5 e4 u/ Z' }+ C
extern "C" void user_terminate()6 `$ ]+ v4 Y$ L$ Q- n, j# q
{" n2 B5 O0 P: w' P: L# u
   AFX_MANAGE_STATE(AfxGetStaticModuleState());0 ~; A2 `4 A% O5 `
}- a7 Y8 S# c* S* E! }0 d
/*================================================================*\
. D6 e9 ?/ I9 c) A8 p3 CFUNCTION: AccessDefault()4 e; s( W) P- {0 w9 i
\*================================================================*/: C+ X& Z6 s3 ?4 E( Q( R- E
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
9 m. I0 H$ ?/ C: t7 `{
- }- W* u/ g: [    return (ACCESS_AVAILABLE);1 v! ?1 R2 o/ _, x+ X
}( t" i/ A9 t/ I4 f9 |# D- d0 f9 [
int messagebox()/////////消息框% F  E. W0 C8 H8 L4 s
{
0 o7 R/ }8 E: T, j    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框) D7 d0 [+ ^& V, C& A
    return(0);: w  r2 O5 \& \' s6 B3 q
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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