QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功& s, \- h. J% _: a9 e9 B

( y3 I' K& U. B. t5 D请高手指点下
: L1 q. d5 f: N  A* U  a
) ^& ]/ T$ p8 f$ Q// 258mj.cpp : 定义 DLL 的初始化例程。" {  L3 H( N' q) ^8 |$ E
//4 `1 C7 ]6 e# x3 n" W6 w& C4 a
( I8 F) \- e# Z# l
#include "stdafx.h"0 z( Z2 e2 M9 B6 Z9 Q( c
#include "258mj.h"
9 t4 ^  o- `, t6 M0 r9 Z1 t- i$ M: J( f% F, N
#include"ProMenu.h"! `4 G( ~2 U9 M/ q* |$ V- G% P" q
#include"ProUtil.h"/ O+ @- m8 ~! z4 S3 ]
#include"ProMenubar.h"3 x* f: R: q, A/ e4 h
) w, u; ]/ e5 i- u' M% v3 F
#ifdef _DEBUG. G( k/ h1 z8 m, S$ e
#define new DEBUG_NEW8 ]6 h9 |8 ?3 [$ S
#endif& O6 R- {- L( J3 |0 F6 d) A& a
- o' G7 L. i8 O- S, u
//
% m3 O2 w8 X, a1 C8 ^" a//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,1 U! @' Q6 F! e8 }/ Q/ g5 u
//        则从此 DLL 导出的任何调入
' @" s3 h: D2 R9 L$ b% r. Q  ]//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
4 T$ D$ T, _# A3 q) b//        该函数的最前面。; R+ a7 e) E5 ~: M
//
  T" f. v8 `7 l8 q3 ]//        例如:& q1 X' K; F, o; P+ z
//
" F7 g0 A" K  X) T8 j//        extern "C" BOOL PASCAL EXPORT ExportedFunction()
; p1 B0 o; F  K' C. ]//        {
: Y$ R( U  P" s, x/ Y0 j//            AFX_MANAGE_STATE(AfxGetStaticModuleState());; Z& L$ i' V- Z) `$ A
//            // 此处为普通函数体; ~* h) q6 a7 C6 U
//        }9 P( l1 s8 D3 e& Y! }0 Q3 z
//* d$ B9 D, ]% I4 Z" T
//        此宏先于任何 MFC 调用  m8 c1 d+ p9 G: v0 p) I/ T
//        出现在每个函数中十分重要。这意味着& a" S  W( F, ~% U
//        它必须作为函数中的第一个语句
. |; |  G( g1 D; m3 C: o//        出现,甚至先于所有对象变量声明,7 d/ S1 ^: M- x2 b2 O2 X* l7 q
//        这是因为它们的构造函数可能生成 MFC
' {6 Z& m- T' Z# V& h//        DLL 调用。
# `# @7 E7 j- H, }3 h" C: f//. c; i( C; H% e0 T7 K; Z3 d$ ?; t
//        有关其他详细信息,! X% a. I; ?4 U2 i; t" j
//        请参阅 MFC 技术说明 33 和 58。
* w5 F# P/ B7 ^  d% O' G" M' d: Q//1 y  q# l* O6 |2 \5 i
; R. n, F, p4 l3 a' y5 A1 l
! p5 c9 z$ h, n& Z8 B3 v# C
// CMy258mjApp
& ~$ p2 @* X1 J# m- `# x: l# `7 N' e( T& \( g6 a/ ^) y1 t
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)4 t) V* N9 F0 z* p. G0 ]
END_MESSAGE_MAP()
% e5 g/ E, u) i& L7 e* ?3 ]7 a9 J6 l( U$ {# K& h  K
$ k! o) e7 u# z% o8 S; H5 c7 e
// CMy258mjApp 构造2 k- g$ g, R3 |" D/ t9 G
2 @7 e- {& A9 @5 T3 v' H/ l
CMy258mjApp::CMy258mjApp()
# a7 h( k& J1 o$ O5 t7 H9 A{/ Y' R3 v% P( o. V# ~
    // TODO: 在此处添加构造代码,
  u8 }! L# H' G    // 将所有重要的初始化放置在 InitInstance 中8 v& [2 V( y$ M' p8 M# ~
}
+ @# g/ |1 ~% r, ?% N& I# Q
) g# U- Q" S/ h( z" f- Z' v
  E' a* W  T' q4 }) j9 l  S: J// 唯一的一个 CMy258mjApp 对象7 D; ~: y: ]  Y# v% l/ _- D
1 L5 _2 ]/ O4 T3 U4 I
CMy258mjApp theApp;" U# ~  G  L& Q2 {1 k" Q( P
! G7 z- G1 _! B" J8 D
0 Q. Z/ ~2 R2 `8 `
// CMy258mjApp 初始化
! p4 d, e2 ^7 G- f/ T4 e( e9 U1 a! d4 g
BOOL CMy258mjApp::InitInstance()
* |  [5 t: K: m( F6 e% ?5 z{" h) o& h- c) A' p8 _1 s) s/ O
    CWinApp::InitInstance();! K: L) S+ w! L# x2 \! `  B* U2 w
, S2 I2 u1 N; ^! T9 H
    return TRUE;
, D! }' T" T0 ^. J
8 U/ i5 v* V3 P0 Z+ D
) _7 q: S; x: ^6 cextern "C" int user_initialize()8 L) P- w7 O5 Z6 h# n) z3 t5 ]
{
' u  r+ }, M- X& P     ProError     status;9 `/ ~" {+ m5 O+ _8 v7 I# Z
     ProFileName  message_file;: j( K% W- a4 W8 }7 F
     uiCmdCmdId   cmd_id1;
* M: t0 M* N. W* J4 f2 `     uiCmdCmdId   cmd_id2;
  |, \* `& X7 w1 o
/ z1 I1 K2 O$ A: D     ProFileName MsgFile;
) M  r' b! q0 h) c8 I8 o% u$ I* L     ProStringToWstring(MsgFile, "Message2.txt");1 N' p' i  t) d( C$ Z1 H( m& I
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
* P7 C. d; z% w+ f2 L8 }; k' y8 ?& m" B' V8 Y( }9 c6 h
     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,2 G3 \' R, i' J: ~
              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);4 U. K, J- o: f9 [( q/ f. q
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,6 z1 \# [& \5 I+ c  }) `, [
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));+ d; b. K$ x  O+ {

1 }- h! h1 F; T% v     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
" }' s2 A  E/ P) u9 Y5 B              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);
8 y, b; s8 |: v2 ~! t3 k, W' o5 N     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,, l! F2 l- k1 O& m! V4 M3 L
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
) ^8 H/ K. `/ j9 w9 Y. t, v/ X9 }$ m9 H! [
     return status;
& ?% m  i5 d9 R' i9 X; e8 i; J}
$ V/ z  A" V" q: o. T& n
" V* }0 r4 \% Z, A/ ~) P# wextern "C" void user_terminate()
3 ~7 Z! T, B/ h* D0 Y3 g{
$ v+ u( O3 ]) {6 Z2 N   AFX_MANAGE_STATE(AfxGetStaticModuleState());& H* _% H" H7 Q1 g+ e
}, e$ z$ K% j- m9 g' ?
/*================================================================*\3 Q9 L: O# X& L1 T  \8 a; Y: M
FUNCTION: AccessDefault()
1 q: a* o. @; ]0 N  Z. x: V\*================================================================*/( z5 f- P0 }5 j1 y9 a$ U& i
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)% ~' q: v: V- ^
{7 S9 h! C0 p% J/ J9 O
    return (ACCESS_AVAILABLE);
! K' u8 d$ X: y$ U}2 c  M+ z, B9 [) E
int messagebox()/////////消息框- L; [8 M) L/ Y
{% i7 Z4 g3 K, Z" Q3 w1 n
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框
' M, U7 P4 Z- A3 i: |    return(0);
5 o* g; z2 {3 a# Y& w}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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