QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
' s/ S0 }8 M# K) p; z' s! [
5 b" C& T2 {9 Y) i: _6 m请高手指点下
4 h& H3 M9 K, A) f. t3 C" |
6 Y& `5 I/ y, M* v7 @// 258mj.cpp : 定义 DLL 的初始化例程。
% ~5 F( V: f+ c) Z& A//
  |  U' E5 f- h4 {8 [8 _. A3 p  B; k, G& {
#include "stdafx.h"
2 A" H: {8 a- C$ v4 W#include "258mj.h"
' }# x: c* U8 W2 [$ r; q. o. r% d9 ]* t( o; r
#include"ProMenu.h"
  E8 O1 Q7 g, f: r#include"ProUtil.h"5 T/ {6 T* _; l
#include"ProMenubar.h"
6 _" ^5 A. e/ t) C
0 h$ b- U+ m% M, [% A+ Q#ifdef _DEBUG: g- s+ y1 w: ^- n+ ]2 L
#define new DEBUG_NEW
9 K3 H8 U1 A! E* O# ^; f#endif
  d* _4 C8 i% J1 J8 N1 t
  j$ T7 l) _* r4 a) k. C//
; K4 S% }* p  E5 j//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
  Y4 ~0 a6 l0 b% b0 f( I3 t//        则从此 DLL 导出的任何调入
; z9 T( d6 _4 ^$ h8 C5 k9 m//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
0 B& t+ u! U' ?# T//        该函数的最前面。
5 g4 l" F6 f: r. c4 P3 O//
7 e1 F( {, v9 m2 G//        例如:
' A- b4 e; i8 T$ Q# h( f//
4 c& x" z, `3 J0 l) r//        extern "C" BOOL PASCAL EXPORT ExportedFunction()* W: q4 j8 V5 H# ^
//        {+ B5 u1 Y% p' {, d  B( @
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());
* [# x1 Y6 S4 Y/ |/ ?- r* ]//            // 此处为普通函数体
# J$ R6 M2 h# P//        }
, J- e- _  r+ A( \! P  `' t8 c//$ B: r/ B! M, j* K4 g9 w
//        此宏先于任何 MFC 调用4 f) W/ C: W2 d+ n9 S
//        出现在每个函数中十分重要。这意味着
5 \' Z" U+ J& l" T1 H//        它必须作为函数中的第一个语句
. i8 Q3 y' a" E2 P2 X4 H//        出现,甚至先于所有对象变量声明,
( o( K+ I! J5 H/ m+ e" K! W6 o! T//        这是因为它们的构造函数可能生成 MFC2 e0 g7 Y1 {4 ^
//        DLL 调用。
4 r& I, {7 m; b1 `% X- r9 Q//+ ?5 r6 ~8 }: x
//        有关其他详细信息,
! f2 _7 J: U" I$ i+ o//        请参阅 MFC 技术说明 33 和 58。. F; _; a3 u6 S$ _& R
//$ A& p6 @8 @, O$ H" _1 y9 V

) }% Q0 ^0 @, x2 ]  O1 |2 O8 {0 G2 j; ^6 m2 J
// CMy258mjApp' ^  d+ {  _$ f; o/ ]
, x4 d; O( y1 c% H* B1 J7 q; I
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)( z" w3 d: I9 S
END_MESSAGE_MAP()  K# o: F7 d* u, y0 n8 v. i6 r
! [( j9 h; b) N7 B. j& Y
0 w( J* M/ I+ w6 b* C6 c
// CMy258mjApp 构造
0 ]/ q9 w- u3 W9 D' ]3 F* y- [3 C5 z9 W
CMy258mjApp::CMy258mjApp()
- o* x8 o- M2 s{) r, X0 ~2 o3 s) A  O  V$ y
    // TODO: 在此处添加构造代码,, w/ b: N' |1 q( ?2 p
    // 将所有重要的初始化放置在 InitInstance 中
) \1 a/ h) V0 A}+ B: ?6 f" U; {) d

6 l. G# _3 S( D0 _5 I. ~: ~
) \) [& T; }# K$ u3 k// 唯一的一个 CMy258mjApp 对象6 R: D9 ~6 U1 T: i7 w! |
( L! P& M+ o( D  e$ ?9 V3 J
CMy258mjApp theApp;& ~. Z  S1 G# q& {
% h" O( q6 V3 Y

) t3 o! F- J. x* p6 ^1 k// CMy258mjApp 初始化& o+ V  ^6 d; y) C5 x& {1 e
9 I) W) D9 s$ \1 v& m' A9 c
BOOL CMy258mjApp::InitInstance()
) B% B) u8 ^/ C: m& h* Q% d* o{
/ x2 }4 C- y! F; D/ Y8 _( L5 a    CWinApp::InitInstance();6 m; L2 C1 Q* }) B7 g, Z
; r$ a  m# [( h6 m
    return TRUE;& D/ M3 m: N( B% A* a  L

, ~0 Q" n3 M& [4 O: d4 U: e3 C1 z2 K) \' ~7 i
extern "C" int user_initialize()0 \' q/ F5 q7 D) y  Z) j) I) W
{( e: c/ M9 F+ F! u
     ProError     status;
7 H* d7 P! K7 K; b8 s     ProFileName  message_file;" K  r4 a  Y( F) ~* F
     uiCmdCmdId   cmd_id1;
7 B- n7 J7 i1 ^     uiCmdCmdId   cmd_id2;
% V4 J  R6 }. |$ h! e5 s( Q/ M2 N
     ProFileName MsgFile;
) h6 n" G6 v( L+ c+ `     ProStringToWstring(MsgFile, "Message2.txt");
" p! T3 z# a" `$ n2 n# f) t0 d( O+ Z     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);+ x7 N; w$ I8 y# h
; t- \. b: e6 e
     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,: O' z7 ?2 Q2 T5 o, q
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);
: W; C! ?( S" H! Z" u& o" g' M$ L     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,* _% ~; w/ P. E8 o) w7 k2 ?
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));  f. K; G- d* f0 N4 S
& `! R1 i( R% K/ G3 G- D
     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
% A' Q9 t9 t' P9 N3 s1 B' U              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
2 z8 c' G- e0 N  Q$ A. c% c$ ^     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,* ~6 R+ c- N6 b/ Z! s* \2 E& M
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
, O% r2 d$ Y- z/ I* d; o$ F% a3 |  G! b' }0 D9 K
     return status;! W6 h% n9 |7 u* x# C: P# Q# v
}
. h1 @! D) M$ @" t8 Z
, A7 n) v! F3 t2 N  v8 textern "C" void user_terminate()
5 F" M, |) k: L2 o{# E8 B' F) W6 f& ?1 I) a
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
5 Z" {7 K7 j8 G: V% B& s9 }. Y4 C}/ ?. H4 B" ]# p; p. p: k9 V
/*================================================================*\
# s6 r& V0 D. K0 B$ r) mFUNCTION: AccessDefault()
& i1 e0 d& g8 \\*================================================================*/8 h5 J3 U: I8 J5 X9 F/ T; {+ W
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
5 l5 }6 Y+ A4 z8 L( b% u{1 b8 n; m) S1 _/ b8 j
    return (ACCESS_AVAILABLE);5 p2 d7 R0 @4 C, Q0 @
}* B; c) P8 {! \2 `. ^
int messagebox()/////////消息框$ P$ I! b* m' r. C
{
5 n& g+ {$ F' ~9 {1 R; m3 t    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
4 p# R+ U; z9 B1 y2 j" E    return(0);8 l) k- @6 Z9 e
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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