QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功" j5 @( ~3 ?* \8 z' p  F" a
: Y7 c! @7 v$ H7 v" [
请高手指点下6 j3 f0 Q1 W1 l' S3 L

& f1 I, j* a0 X/ m3 }5 S// 258mj.cpp : 定义 DLL 的初始化例程。5 c# @1 s; k) x
//
6 Q3 U0 z* K8 i9 [
' L+ m9 f) A" K4 |2 v3 G4 _#include "stdafx.h"
5 l& Z- z# Q5 g* ]; A* G#include "258mj.h"
. o1 s% Z9 y# B  e8 B3 C4 w; b
) u# m0 k3 I  i#include"ProMenu.h"
6 }4 O6 z) n6 W: {+ h9 @#include"ProUtil.h"  z: q) h+ H5 j0 n% j3 N6 b* q
#include"ProMenubar.h"
9 }: V% N9 @3 G( H; `( o6 o2 P
; p! {+ T' X1 t#ifdef _DEBUG& y1 A0 D& e4 O( p: w  g: B; N0 Y
#define new DEBUG_NEW9 a( K% h+ g; J" j( E: Q1 Q
#endif
1 F% r/ H2 r  Y# ^
. t* W/ ]4 u, v% X- }//  @$ ^4 D8 J3 J
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
3 @! r# u" l& c- ?0 m//        则从此 DLL 导出的任何调入! K7 `9 J, s1 Y6 {* A
//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
  N, l4 \) u+ x8 \' U/ `//        该函数的最前面。
' {" A4 D' x: K$ ^- }//
8 _" r$ w: L2 I* ?) B) I4 s) G//        例如:
) R: ]: \$ ~, Z3 Y) b, w//
- L* R  p8 u+ \( o8 y% Q4 C//        extern "C" BOOL PASCAL EXPORT ExportedFunction()
# b2 F: O) ]3 A2 h# A# e//        {, L# h3 z1 |# U& \  x! O( p+ D
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());8 u# s- E* j  y  A" h( l
//            // 此处为普通函数体  g( O: h; l7 z$ c& B) h
//        }9 W4 s" M: K% U$ |& Z* O& V
//2 B( ^/ E6 I: e$ x& n+ x5 L: K
//        此宏先于任何 MFC 调用
" _2 s  Y/ c6 V1 ?6 t8 u* a//        出现在每个函数中十分重要。这意味着3 c' ~' f' F/ \5 q9 g
//        它必须作为函数中的第一个语句9 o. C0 \/ T+ s% P; l4 D2 Y8 G: k3 L
//        出现,甚至先于所有对象变量声明,) D/ U! r- ]4 O3 g3 y* |0 q! p
//        这是因为它们的构造函数可能生成 MFC
  C9 I' w; W! [/ h//        DLL 调用。
1 A7 S: d, J8 U5 D% K1 [7 k, U//0 {- y4 q* \9 R* [) ^: j  v
//        有关其他详细信息,+ y" j4 g! y% @3 L  ~
//        请参阅 MFC 技术说明 33 和 58。
5 W1 R9 h, ~* R) M//
0 A5 R4 Q. q5 @4 Z# I1 ~6 R4 n
) e; ^6 @% v1 ~9 C" s" C( a$ U! r+ B' w+ W' X
// CMy258mjApp
! z% j4 @1 X0 X( E3 e/ w" o/ N/ n  c( k' [- i% y
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)( U* j: _4 T/ s4 B  L
END_MESSAGE_MAP()
' U. N7 ~- I% w4 {! x
* f5 d$ }  R2 g6 b
& Y. C3 w4 u) }7 @7 J// CMy258mjApp 构造
: ]1 d. Y/ X3 i9 G' d, f! r( b" y: }( `5 ^% _- B3 N6 u" V) e
CMy258mjApp::CMy258mjApp()( ^' K2 I/ K! d" V9 @6 Y3 ~, |, f3 M- ^
{
. g8 N- ~9 e( ~. x) f    // TODO: 在此处添加构造代码,
2 X: n: g5 e% x5 {    // 将所有重要的初始化放置在 InitInstance 中* k5 E0 K2 R" T* M) ?; Z- H
}
$ y3 n7 ^- V- {4 C6 J+ M. c4 c
4 i1 n+ F) C. ^; i. d$ y* w
# |; {7 L! H8 x2 X7 j) Q/ H// 唯一的一个 CMy258mjApp 对象" b  h  W3 E* J  ?1 c( _. h
9 |6 _- ?# h* q1 b
CMy258mjApp theApp;$ W* p  g: N. x4 H7 S" M

* g2 `8 X& ]) f) b& E! q& t0 a' R' _1 D4 F
// CMy258mjApp 初始化8 k7 R6 ^0 e9 \/ c
* |: |9 Q& u/ E3 k- c+ y
BOOL CMy258mjApp::InitInstance()
5 P& f, U+ E) H6 Y% r7 a{
8 y, x/ i4 l- m2 J3 ~    CWinApp::InitInstance();
6 x9 X  L$ N9 J, k
1 }' d7 R( h% s9 j" S    return TRUE;
( F% c% p: N/ T! `1 y  s+ G8 c% J
5 s8 o5 c$ H4 v' L9 T
7 x! }' O+ ~" A0 V& U% s" y6 G6 b( oextern "C" int user_initialize()
+ X, l) \+ }& G{) S* S. i/ N+ S8 R+ P9 Y. m7 Y
     ProError     status;
9 x9 z/ K& i: X5 c% ^# L% u$ b     ProFileName  message_file;9 }, c% T6 u/ p5 t  B
     uiCmdCmdId   cmd_id1;
. ~# b" m, h( m     uiCmdCmdId   cmd_id2;
- m! |. }" I* D$ J, ~  T! [& b- L: d9 f& l  j
     ProFileName MsgFile;# y( w' D% G8 Z+ W+ k8 U& i8 E
     ProStringToWstring(MsgFile, "Message2.txt");) o- K  \8 k6 n3 A2 ^
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);! L3 }& K6 Y( a" @+ M3 D2 o5 q: U

7 u+ N" A. {. Q( V     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,
# o- h7 Y# C5 y3 \+ ?' s              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
1 l! k1 a) T# @0 I( ?     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
' w, x$ `3 E3 z; }) D. G  j+ p1 b              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));
  @% q6 G2 a% w2 i2 E( f- F2 t
" i( d7 R  q" c3 P" _% W0 |, L2 N     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,3 N" ^8 p2 ^) V2 z" Z
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
" R& C8 o! \& G$ X! L% Y; Y+ J2 ^     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,9 O3 e+ W4 L4 P& f/ v
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));. u! c! P% R/ I. ]& Y, l- v5 ?4 r
7 `6 b+ ?. i, F
     return status;' Z; l3 M+ H5 I2 P3 t) V
}
4 A9 ^2 E& b3 Q& I& T% S2 k% y, t: z; [# K" [3 Y9 b8 G1 _
extern "C" void user_terminate()+ [2 u4 |; V' Q  s- w
{, J2 {! N# K3 e* F
   AFX_MANAGE_STATE(AfxGetStaticModuleState());, F; v- d$ e, k) c/ _. W' ]( H
}
6 t9 u# H9 q6 u- E2 w- S/*================================================================*\1 I+ D4 [8 u5 y; j
FUNCTION: AccessDefault()$ W+ _/ X! Z0 j
\*================================================================*/
4 o, R) t1 T, p/ N! J$ @static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)7 x0 W3 Q6 C& t2 q
{" N0 c0 B* w' C6 B1 M
    return (ACCESS_AVAILABLE);/ @$ h6 A! K' y; `
}' ^+ o% e6 x8 w2 J( S& H
int messagebox()/////////消息框6 ]- l8 g7 {3 a
{2 x: b. }& A+ {& N4 Z
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
5 ~6 `9 P& t; u! i  U8 M6 ?    return(0);7 I0 I' O; K5 g+ Z# O+ k
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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