QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功# ~  d& ~: {) T  e
4 r$ H  o( l; X% w5 ^4 g' x: }/ U2 V
请高手指点下$ t) Q& z  \$ H$ H$ w) ^

% Q' N( k8 p3 P; G; k// 258mj.cpp : 定义 DLL 的初始化例程。
" N6 D$ \. u1 t4 }$ v) t; n//6 U, u% Y1 |  O" Y& x) x0 G

  {4 G9 o/ b3 H6 f0 B% K#include "stdafx.h"8 A. N: D2 \' ^2 r) G
#include "258mj.h"
: s" w; @* d9 I% W" ?( U2 z: ?; f9 [" g
#include"ProMenu.h"
! c  D& G6 g4 \/ {8 {" K6 E2 J#include"ProUtil.h") U% x: b' E6 ]4 M  ]: @$ W
#include"ProMenubar.h"
& c( b9 ?5 i1 D1 J8 w9 E; G3 I7 m3 _! ~( j, }2 h, }( n
#ifdef _DEBUG* n6 b6 W- J' l& p& W% ]9 j
#define new DEBUG_NEW+ H  o2 }. N# D" {1 o. }6 {
#endif
7 p& N% K/ Q9 H+ t- M- {
  H- L1 S" ]9 c; l//: `. i+ V) t1 |3 Y! }9 y
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
. k# K: I6 K$ G+ I/ ^7 C# G//        则从此 DLL 导出的任何调入
* b: t* x" \7 e//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到& t: [# G/ Q0 I3 H
//        该函数的最前面。
% Z5 l. z4 L( h2 w; p//" J' b6 i" o3 R: ~# f* q9 K
//        例如:2 k2 o1 S' X: \0 m& A* o) S% Z1 g/ h- y
//
8 _' l/ ]! B( ]8 b3 Y# k# {# z2 F//        extern "C" BOOL PASCAL EXPORT ExportedFunction()# E$ ~5 I' t; D( }6 \+ x2 h
//        {
3 R6 |$ y3 ?5 ~+ q! H//            AFX_MANAGE_STATE(AfxGetStaticModuleState());
( C. v! o. I9 x& `0 [2 U//            // 此处为普通函数体$ ]$ j0 _& a* n. V/ K
//        }
9 y+ ~5 |! n8 l//
6 |- C4 Y% e" v" k2 X. H, V//        此宏先于任何 MFC 调用% O6 I/ {+ x+ k) m: u
//        出现在每个函数中十分重要。这意味着( p8 G/ X$ G# \
//        它必须作为函数中的第一个语句  G/ U' X! V& L; W
//        出现,甚至先于所有对象变量声明,
4 i0 X) M# ~# U//        这是因为它们的构造函数可能生成 MFC8 R# W* P; [9 G4 z8 `9 h' M% g
//        DLL 调用。* x, f/ D; q( [. S  Y9 J
//3 i; G' B# Q4 X
//        有关其他详细信息,5 K( y# ^* c5 B8 Q( `* B5 m
//        请参阅 MFC 技术说明 33 和 58。' l0 g2 T( H8 w* v3 K$ |
//0 s% Q0 A1 i  w- V4 \3 t2 l/ c

' W2 o: P# Z: e' s* `/ D- R$ V, b1 G4 ]
// CMy258mjApp! w5 y! L3 z; p1 K
2 d* }5 x% e6 [( H3 i
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
1 V( h) G, O" BEND_MESSAGE_MAP()
2 P7 a$ Z- K/ b4 w* _" Y( _
4 i" n- x6 V* c/ j1 O3 R; s! z/ k9 s. @) `& ~
// CMy258mjApp 构造* `- Y. _0 Q+ \: M* P  D5 U

: U' v; n9 [7 M, p; fCMy258mjApp::CMy258mjApp()( w6 F# E( z1 Y% L* t# Q/ @# j1 `
{, v1 B; @. _% n  P+ ~: x
    // TODO: 在此处添加构造代码,3 y6 m1 Y9 f. b; h, e; [
    // 将所有重要的初始化放置在 InitInstance 中
5 D1 J( a' t2 |( b}
7 I+ F8 ^: ~8 }' M1 m, Q& F" Q' r: s  W

! D  O; c6 A: |7 U6 ]! C// 唯一的一个 CMy258mjApp 对象
4 m% o& r. ~1 Z8 u7 u& B+ V. g& m( n# B; A& ]- i
CMy258mjApp theApp;$ E" t4 c7 ~2 }% [5 q- C

- r* g+ H8 {( x5 r0 j8 J8 r
) D; c- v4 l" X+ a" \// CMy258mjApp 初始化( O6 K7 A- s& D+ M4 g; l( g
: X; W4 l% i1 ^: u; g
BOOL CMy258mjApp::InitInstance()2 C7 M0 K( n; ]( S9 {) P4 v
{9 E6 h4 v. e1 @+ {( A9 k
    CWinApp::InitInstance();) `4 m5 ^# I" j! v
9 k1 P1 l- G8 \  O& W* k9 _( X
    return TRUE;
0 J  H8 M6 R/ O: e: X$ E: b$ I( \! D0 Q9 F, Y

0 ]! o: t0 H- cextern "C" int user_initialize()2 M. R! v/ H3 O6 X, x
{
/ L( [  {# A6 n$ u% i  f# P     ProError     status;
- v" l0 b2 d# F4 E, u$ p" M" L     ProFileName  message_file;/ y' t. ]8 a; V
     uiCmdCmdId   cmd_id1;
# @' S0 @; ?( E     uiCmdCmdId   cmd_id2;
  I5 K9 @  m" e5 v( }. b0 X1 v! |. R- X2 X, b3 Q
     ProFileName MsgFile;
. ?2 j3 e( b2 O6 H     ProStringToWstring(MsgFile, "Message2.txt");
5 m" L+ Q' T* C- F     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);! }9 B2 J" o* Y! u, X
, c6 Q3 m8 J' y/ s; U  l% [
     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,
2 v/ a, V& ^$ t# _2 P% _+ a5 O7 h              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);3 X; v5 D7 C+ V
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
5 s: k* C7 n. q7 ^: N8 o              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));
, N1 O# v0 X/ S% _5 o/ F; ?' Y* a, A" c% x
     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
# \9 u) S6 l# ]! J- E              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
  Y* H/ z7 f( i4 @2 E     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,
* I5 E, y$ y) ^4 Z              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));3 e3 {2 S; _' q3 z' O
0 u3 \! d7 Y# b# _" B$ G. Y
     return status;
6 B' a/ s5 O- \" i* s& g# k}3 _9 ~$ M: @0 U/ g& C3 n

$ f4 H" M9 D! d/ zextern "C" void user_terminate()
; x2 y+ ]- k, V- L{
- }- `: X  p8 [/ }   AFX_MANAGE_STATE(AfxGetStaticModuleState());0 I2 p6 F# d# [: X
}
+ T7 a+ {+ a' N4 h' q/*================================================================*\. Z" }- ?3 d8 U+ ~2 F! i" G
FUNCTION: AccessDefault()
) E; j  P: w8 P\*================================================================*/4 z( M% x6 u  x) b6 d  D7 J
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
) C& w6 C8 h8 N5 l+ F/ |  B{. F) r; G# z: {
    return (ACCESS_AVAILABLE);# Q% {% G- @$ T+ X. U0 T
}
0 d7 y, b( j9 p% e" F( b" s& Eint messagebox()/////////消息框" s$ p2 q8 T5 l5 E6 s
{2 u1 x% v6 X. w/ s$ _( g
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
) i) ]" E+ ]" E8 e, [1 ?    return(0);2 @! }2 F9 r+ f: ^2 w; I. D# i
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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