QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功0 n# \6 T* {, s+ J, C  |7 _5 K
5 y+ w6 ?7 _+ z0 s
请高手指点下  o) D* E& d) F7 X
9 W  a! z8 H) a
// 258mj.cpp : 定义 DLL 的初始化例程。& f: o) S  n6 o, I0 F) e# v/ O* a( c
//" \9 I! O7 A: Z) N: V+ `% g1 |

8 q% P- |! u4 C#include "stdafx.h", T! K8 ]0 W5 n
#include "258mj.h"! Q9 d% t- y6 d$ h

! y2 z9 |* P: [#include"ProMenu.h"
& k) Q+ s# i& Z#include"ProUtil.h"
2 h# [5 s: D% ]  h# U. W#include"ProMenubar.h"6 y7 f# d% |# H) m0 f

8 N: @' H7 m" k0 ~#ifdef _DEBUG0 D$ Q  ?+ T0 f: m0 C
#define new DEBUG_NEW# [3 e: s; o5 \7 z% q( q6 g
#endif
! _9 S* h4 ~7 m" n5 q$ H0 c% F% Z. q& E( N
//
' W* ]" W; f8 R& k' E( @$ l4 `//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,. w, S, ^. T+ a8 s! b9 c& S$ H
//        则从此 DLL 导出的任何调入! A. l  B3 f% t' Y8 Z; {
//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
2 W* o5 c/ m  e& @//        该函数的最前面。
5 C+ H( G6 |& {//  s5 c" G% h2 M. P
//        例如:
' M( K: v6 H/ f$ E+ ^; [//) }! ~9 N+ X. C
//        extern "C" BOOL PASCAL EXPORT ExportedFunction(), v' q  z  ^: N% l# R9 @, d
//        {
2 s" b# O, ], N0 |; W//            AFX_MANAGE_STATE(AfxGetStaticModuleState());& \, I+ _- ]: F" p" j
//            // 此处为普通函数体' Y( |5 E) e; C* e0 ?$ d
//        }( s9 r& S- C7 V2 r3 G7 S
//
) _( E  m! R7 `0 `7 `$ z/ N//        此宏先于任何 MFC 调用
  W$ l4 U5 {5 S2 N, Y//        出现在每个函数中十分重要。这意味着
# J- O4 A& A. ~9 U5 ?//        它必须作为函数中的第一个语句
/ W1 Z( ?( w5 I! U  V# I/ G//        出现,甚至先于所有对象变量声明,2 t+ i' ]9 ?5 U3 ]  Z" d6 b  M
//        这是因为它们的构造函数可能生成 MFC
. Y  C, E# K! _0 T$ S  g//        DLL 调用。/ c3 E4 h  F6 U% ^, M" ?
//7 M" z3 m4 o- B- N  ?
//        有关其他详细信息,
9 c2 u( O& ~8 L/ f0 u: R1 O//        请参阅 MFC 技术说明 33 和 58。
5 U3 r  ~7 v. l8 x//
; }6 A6 Z6 c5 s
5 @! j! T% `0 \7 w* M5 P$ y5 q( B; P! {# c: \$ t" w# @
// CMy258mjApp
$ _( a2 t* W1 {7 M' @, C' l3 B1 K! g0 Y6 i
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)$ z3 U2 C. c9 y9 P
END_MESSAGE_MAP()  j" x; {: Y9 k' m* J

' ~5 @- K$ c% k9 K, F" C( V
7 ?8 R# S6 y; k) U( G* S& o! N2 H! \// CMy258mjApp 构造, \  x( W% P6 P  S7 V' G( @

; |4 t& {6 e. f* BCMy258mjApp::CMy258mjApp(). }+ Q6 u+ \. }. H- E
{
$ ?7 ^  j$ n- G  O" Z: X    // TODO: 在此处添加构造代码,- j( U& h+ }4 ?/ ?
    // 将所有重要的初始化放置在 InitInstance 中
. f8 Q! x. D! _) v}
2 P6 E) O0 J) m' `; L& q6 D+ ^3 S2 L7 U3 |+ {  a, Y

: d! T* X5 [  Q6 y2 p0 E* y3 Q// 唯一的一个 CMy258mjApp 对象
4 O( N' R: R, o4 y2 [9 P" H) X+ M+ j; w6 V. N1 }
CMy258mjApp theApp;- P% Y. \& W7 Y3 c  D

& A6 a  u5 w  d7 ]: J/ P& M4 u+ a* J) X/ {: z
// CMy258mjApp 初始化
2 v0 L- r1 j- M; E2 u7 s$ I( Q; V( `& y
BOOL CMy258mjApp::InitInstance()! m% i  ]. v2 c# K7 y
{/ I! J# f3 m* o6 j; u. S$ ?
    CWinApp::InitInstance();
: s) Q; @9 Y$ S5 ~) d& G6 t+ k& g& Q0 d% o# F4 p3 \" |
    return TRUE;
4 n% F# @* v. D. V7 W
( U2 E/ d8 c- h
3 l1 \$ m& H# H  E: f6 J; Lextern "C" int user_initialize()
/ N7 h; [6 R& Q# l/ b2 n: K{
$ @( x$ d: U/ w$ ^! {- T     ProError     status;. r& H1 Z& ]$ l, P4 y
     ProFileName  message_file;
+ S  t: L9 V2 y0 d! v. I" X% E     uiCmdCmdId   cmd_id1;$ O: g% N0 G# [* r  y
     uiCmdCmdId   cmd_id2;9 n6 Z9 `" N' w+ x( x& }) O; P% E: M1 c
# {2 S7 H& t! w  R7 }: v* r4 ^, x
     ProFileName MsgFile;1 S" d# g/ n4 J8 N& M# {
     ProStringToWstring(MsgFile, "Message2.txt");
6 O" B: J2 T0 i     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);) o5 [- a5 l2 k: ]4 |

& _- `' u: l& n     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,
8 A' M( f0 o% |, o              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);# K" W3 P3 R# m, B- ^( k1 a
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,5 P" z2 r' c( n
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));4 m% }4 E. e% q0 x/ W7 b# X: T( @% L

" P! }! R) r3 H; B, \+ p+ m0 E     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,# W3 i! ~- S' n% ?' X9 K
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);9 c, D6 d: T3 s0 M* N' h3 b) A
     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,
: p& U! @4 \! T5 ~+ t* x              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));6 r0 x/ Y% A' p+ }
; x7 Y8 u6 `6 C, `
     return status;
; h# e  @) h+ y7 e7 r}1 W. a. A0 {, x" L1 |( U
2 R% X) l7 ]' w+ m2 ^3 U
extern "C" void user_terminate()
9 s1 r* ^; _4 u. |0 B9 T{
# F2 t! v! I" i" U! M: g+ A   AFX_MANAGE_STATE(AfxGetStaticModuleState());
% g8 N8 R! O" E}' s7 A# u" v! U- r( H  O7 b1 H
/*================================================================*\
7 X$ k8 e/ e' N4 V+ d" h) Y4 sFUNCTION: AccessDefault()
. O  X8 J  j4 \9 v\*================================================================*/- c( t# E2 W0 ]6 A9 _$ }2 H
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode): f! W" C7 u$ i( k  `) H, E
{9 o5 o2 J9 i4 U0 a; ?2 e
    return (ACCESS_AVAILABLE);- V$ v8 t- G. u1 {
}1 G. g1 C, i+ g
int messagebox()/////////消息框* i& J( N7 I  s; F6 q
{
. ]: y; L/ p! t! d    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
* _" [2 T  k2 L    return(0);" T3 O0 {5 M# W% H
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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