QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
" d7 }6 s& V% k1 b' d4 m' G5 ~
( q: D2 @5 r2 `! @请高手指点下
# Q/ y5 S7 e$ I7 ^2 j9 u  K6 i( G/ K
// 258mj.cpp : 定义 DLL 的初始化例程。& }# E, l; A# P% w! B9 A3 q: i7 T' b
//
4 v( m& M) {% b
! Q- A. h% ^. T. g' E6 k$ `#include "stdafx.h"; F* G+ Q3 b# V6 V; f( P; c: s
#include "258mj.h"
3 O- V# {: v! L' P  C. ~0 P
* P1 l+ H( K* r' i/ a#include"ProMenu.h"
3 j' b: x! G" G% R9 p3 G+ e; i7 d#include"ProUtil.h"$ B4 x& |8 R0 p; l& h
#include"ProMenubar.h"" H& }+ I. U2 f* _
, A  j7 O6 s. t5 p7 U$ A/ B) f4 Q
#ifdef _DEBUG( d' [! L% U( S1 p. q5 w
#define new DEBUG_NEW
' i1 X  t" C( y! S#endif
% D# c0 I$ k5 V- s/ O
& t6 d3 D6 [# c; M1 ]) B//1 m: u0 Q5 }; j: O
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,* j; W: m. A" c; [1 Q* B! K
//        则从此 DLL 导出的任何调入
- _  O) {, L6 e0 d' A  Y  L//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到/ J3 P( t' G0 }; j% l5 J
//        该函数的最前面。
0 V" l5 p# v) y6 D//& ^+ x- c  U* [: p& Q
//        例如:5 d5 L$ C! Z% K, C
//
1 ^) {* Y' G, \, w; w/ @1 g//        extern "C" BOOL PASCAL EXPORT ExportedFunction()! y5 x  _; w$ q! c2 \- m
//        {- g- h, O- o; F  U) }
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());
1 j  X. Z$ B/ Q" R9 U5 @9 y# X//            // 此处为普通函数体7 D' `4 Q. s9 r( ]5 C; m
//        }
- }+ S$ D  R) L5 T3 S; |( m( w0 o//
) c+ a" }9 d0 |+ x3 x4 v//        此宏先于任何 MFC 调用
7 s6 Z5 J$ z. d( Q4 X1 R" {4 F0 x//        出现在每个函数中十分重要。这意味着2 G: x0 r$ Y) w' g/ [3 Y
//        它必须作为函数中的第一个语句
: h# M. k, A4 ?. [" x- n//        出现,甚至先于所有对象变量声明,* w' N- P5 `% F9 w' j
//        这是因为它们的构造函数可能生成 MFC
3 ^) x6 S7 B3 k) }5 Y* e/ }( I  r; Q//        DLL 调用。8 O+ F- O5 i, H% ^0 y2 p
//) N" R' j; ^/ |5 {
//        有关其他详细信息,; M/ S! S3 {6 P6 z. L
//        请参阅 MFC 技术说明 33 和 58。6 @; o; y- h! M6 |( B5 [3 L2 ^0 A
//
* G- i5 D3 X# |
2 W0 m  w1 Z& Q$ N5 [) b- \: z1 s" o3 u( q2 M, [
// CMy258mjApp
& D# I7 n0 b* i
4 E4 |: T9 c; X: z2 K5 YBEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)) `  f/ a# {4 V# L4 |  |, U
END_MESSAGE_MAP()
' i7 j( k% c/ `( l3 K6 h  x7 \& \. _8 y* B6 G9 B1 u

) c+ `$ p  M4 m0 G: Y// CMy258mjApp 构造
! c3 P% c; @+ \- Q, ^* r% r
# W* e' W  q* H; gCMy258mjApp::CMy258mjApp()
" W4 Y- E: \& i4 b! q$ N9 a{
/ t- V  d2 L3 f( }: f9 m* `    // TODO: 在此处添加构造代码,& Q# B/ @# U6 B/ d# \3 h/ |
    // 将所有重要的初始化放置在 InitInstance 中
) H6 m% i/ D- `8 k2 E% o) U# @}- Y8 F( W" t9 `
2 L% H0 p/ f3 c' ]/ _7 G6 L

7 m( H% `# e3 I$ H: }( G' [// 唯一的一个 CMy258mjApp 对象/ q3 s0 Y$ j" e# b
7 m7 Q0 A' |! W
CMy258mjApp theApp;
: B4 b) t5 F/ }3 [3 D9 J# i$ j4 G! x
8 k; ]6 s4 L9 I- _" ^. F. j0 M2 l9 ^+ G/ }% D$ m$ `9 W
// CMy258mjApp 初始化
# _) v3 E" b+ u5 k+ R3 H
0 y6 ?' W' ^  j/ ~1 d$ s# P: O- ZBOOL CMy258mjApp::InitInstance()
6 Z# O- R$ B$ y{
9 V) Z7 q3 s/ }    CWinApp::InitInstance();
, @% g0 c# s; |* R9 t
( x: p  J! w! u+ R# J    return TRUE;
0 Z. |9 f( \/ `2 M7 \$ V5 S5 ^+ G; t

, |2 D. U9 u) ]2 }& F& P, dextern "C" int user_initialize()
1 e3 |) R( t& T/ y{) |0 m2 v' k6 p  m) r; e5 s2 ?
     ProError     status;4 J$ ]% G0 w. O
     ProFileName  message_file;6 W, ~" a7 g7 F+ I, t, d
     uiCmdCmdId   cmd_id1;1 T5 t% o. j3 b. t
     uiCmdCmdId   cmd_id2;
4 s& u0 m3 A, ~; [' _
5 c# [, x4 h6 q& @* h& R4 @  n# |- T# k     ProFileName MsgFile;
6 ^: e4 R8 p/ Q1 W; ?6 H' }. V     ProStringToWstring(MsgFile, "Message2.txt");
$ j/ ~+ [/ J2 o5 M& Q     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
- a8 E& `1 W# o& x; U1 O8 y  c$ H
4 e: |+ u5 k1 l: y     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,9 C4 K! {7 a* Q
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);2 k6 T% s1 K  G
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,9 _4 _* |3 d) k" D& u, {" n9 U
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));+ d0 G. e9 O$ c7 x  C

  }1 N- j3 T5 g/ o! z' Q& K     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,! ]$ M0 n$ K  T! X
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
/ \1 w4 q  C4 r) d     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,
2 E* Y0 p6 E. l" G3 Y4 g1 i. \              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));$ O1 S- L9 B' M2 ^
% O+ d' _8 S$ i  G' V
     return status;- k! c  G. X. w, w7 ^/ P5 U
}+ ~# `4 K8 K+ f4 \7 [

5 W; _+ X$ b  D2 h% Nextern "C" void user_terminate()( q9 y/ g. w- K9 x. A2 A
{9 H3 ]4 v6 a( @- H: L  a. @/ F
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
- c( T) U' K5 d, U  u- k' C}0 R6 a; [$ C8 z) v  Y2 }( S
/*================================================================*\( p- G) t) D2 @! S7 x
FUNCTION: AccessDefault()) ~# ^) T  m. P5 I$ D
\*================================================================*/
0 z% \6 e3 L% F% S& W+ }" |static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)2 R5 {1 y! `3 D7 Q- w6 A
{
$ V- L. Z6 Z' a# |    return (ACCESS_AVAILABLE);5 [  N1 i8 y9 f  M9 {4 R* I$ N
}
6 l9 i7 x( g# ~4 u. uint messagebox()/////////消息框
& a; O* ~) i, S) h{. v+ W1 e- b& {* G
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框. F, H4 z: Y8 L5 Q  v/ E* W0 H
    return(0);. K% `) \! ^; ^+ p* G, s: y
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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