QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功2 o9 M6 {3 P  D

  w+ c! [- A, I# d请高手指点下& }3 I9 }3 Y$ G' m  n6 {; e% M* B. M
- V( z9 V; p7 h/ o' J
// 258mj.cpp : 定义 DLL 的初始化例程。
9 h' J! K# c) {+ a0 z; r: S//
, T6 x# t2 c4 w9 g; F7 b4 H
7 s" Y( i# f1 q2 e/ p#include "stdafx.h"
/ j2 I/ k+ {! `" r#include "258mj.h"
* z, r" J5 ^+ E2 O& S, y
: z: ^9 _$ K( e& |' M4 m, ]#include"ProMenu.h"
% |) o7 o7 n  u( z1 r+ J#include"ProUtil.h"2 x6 l) x/ c( ~& D- _% |) p
#include"ProMenubar.h"/ m( ~4 |% _3 L& L  E( v% N

. ^: c# u; P/ d# r7 Z& y; G8 Q#ifdef _DEBUG
9 y  @* M4 \' H2 f/ v# w: g! s#define new DEBUG_NEW" j* y& v1 \: d- A
#endif# [& u4 R% N) [' W
' y% F$ K( R& q1 h# l
//2 `' i) _. i+ x" _7 u* K
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
4 f3 k' W3 p/ l8 n//        则从此 DLL 导出的任何调入$ s% _; p1 l: p0 m3 e; g) J
//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到/ d8 ?% n  S7 l+ I) A
//        该函数的最前面。9 G8 ~% t  y/ {" x
//
" N8 m6 h8 R  f8 _//        例如:
6 E9 ~% H" @6 B* h" d9 v/ `0 Q//
* o7 ^5 d9 }6 a$ y# F% i//        extern "C" BOOL PASCAL EXPORT ExportedFunction()
7 `7 J4 [6 U$ T( p& n//        {& @: [3 z: Q. y7 P% y# I
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());
: W. a* r( B; }( L- R//            // 此处为普通函数体
/ S0 C/ f6 [7 M5 m: `# c( n//        }  \4 {9 F' T& B0 Q$ N
//) Q' f6 f3 H3 N9 j
//        此宏先于任何 MFC 调用: m& |- I& E3 A% |" Y# E
//        出现在每个函数中十分重要。这意味着
8 R; Y& h/ s, q" e/ ~//        它必须作为函数中的第一个语句  U8 E# I% r* [0 F1 i. X4 g, c
//        出现,甚至先于所有对象变量声明,- Q. G7 G' o5 L6 d: r, p$ \
//        这是因为它们的构造函数可能生成 MFC
; S" }5 @+ z+ I1 Z. Q9 C& Q$ o//        DLL 调用。& h) x$ e# V8 l) ]1 j9 x
//+ D: E2 N" x, f$ L$ {
//        有关其他详细信息,
+ S' Z; a7 {# f  C//        请参阅 MFC 技术说明 33 和 58。
- f, I3 C& R$ H: z# q//
1 [3 \# P) l% g+ P7 G1 d2 Y. H
+ i+ y* F& I  c
* N5 s7 A$ |0 V0 W+ }' U( Q9 {6 e// CMy258mjApp
( t- y7 B" n( ~% Z5 y) k# @( V1 j+ x5 B* J4 z" ?/ h: M1 w4 e
BEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
; ~( ?' n- n2 u$ `END_MESSAGE_MAP()& m. o* A9 A1 v# l* t
$ o" ]9 k( o# M1 Y

, N" b7 [* j9 E  d  l; _// CMy258mjApp 构造# ]1 U" q. Y1 @7 p5 K

; N  l& f0 ?. p9 eCMy258mjApp::CMy258mjApp()( D& z  E: _/ F) D
{3 }, P' F$ [$ k4 U" i
    // TODO: 在此处添加构造代码,6 _3 b+ ^& P: q, n' b+ P. H
    // 将所有重要的初始化放置在 InitInstance 中; N4 U. m& A: c7 L& B- I
}
) V) [8 X" @7 o" O' T4 }
0 w/ Z9 w" h1 U0 c8 g
& I# ~1 z. h+ m9 q- s// 唯一的一个 CMy258mjApp 对象' l" u4 E6 w* M4 y2 Z$ Y
: C- O7 z3 S' `! y! Z3 s
CMy258mjApp theApp;4 m$ U# Y: G& j7 d+ v6 H' v' j$ q
( t# e  t& f! h# E* W

& e* v  ~* d0 G# a// CMy258mjApp 初始化, f, q+ i& S4 l/ v7 ^  V
9 q; z& z7 J! a1 L9 [
BOOL CMy258mjApp::InitInstance()
! M- u, g8 ]4 ~5 X8 r: ~{) `) c9 T. D! R2 d7 ~" v- e+ O/ o0 {
    CWinApp::InitInstance();. f0 T& O3 }* V6 O& |$ i
! A6 o& M- Y. m3 I; A9 i' ?
    return TRUE;/ `$ D& A8 Z2 k, p; v5 ^' j
  E  Q! V7 U, i6 V, L: j; z  l2 C5 Y1 l
% S8 m$ D: ~1 @! I
extern "C" int user_initialize()9 x( K+ u: e3 W, Q4 q
{
1 y0 F6 d- e. U7 p! h     ProError     status;
1 j- D/ c2 _3 d# c! F     ProFileName  message_file;
/ Q% d# M2 y! {4 E1 E     uiCmdCmdId   cmd_id1;8 H' h& s2 N& {, `0 l; K
     uiCmdCmdId   cmd_id2;; {5 L0 o7 p3 k( r, g5 H9 C# J
5 \  i5 t8 b7 [! g. K0 O* b
     ProFileName MsgFile;
; Y3 H! g4 V( V5 E& f     ProStringToWstring(MsgFile, "Message2.txt");2 J/ A1 \' }  K% w
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);0 g9 w3 n. a9 e# @2 L

$ F; T4 X+ g9 s4 D+ g& x/ e     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,
& A- L8 P1 s& Y              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);, J9 H7 C9 Q3 c$ K) ~) Q
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,
5 L/ S5 K& ~$ `8 I- y' {8 T' H6 D4 ?              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));
9 {6 k3 b# E# }4 f9 S, J( J6 Y1 n/ y: W( d. H/ e
     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
) i* x- k" S% y# W              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);1 s9 A& M( Y+ g2 L3 b. @
     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,- ?, B5 Q4 H0 D# c$ a; p
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));2 ?8 m( y, w: u/ m. E

9 r3 n7 s, H& [3 Q" m, @     return status;. s: w  o, t  V9 X4 P
}
' O. g! O4 F) [3 g7 x" q6 k9 Z/ r9 W( g7 s
extern "C" void user_terminate()6 B9 n* f* w% Y, [3 Y
{
- S& D6 u7 p: p   AFX_MANAGE_STATE(AfxGetStaticModuleState());
. T: s0 F: L( Q( k3 s. `}
9 }: P1 I& |, U2 ~* W/*================================================================*\
- Q' e: O; S5 u3 ?FUNCTION: AccessDefault()! e; @/ @0 I! C: a
\*================================================================*/& t- ^7 E. V% @" x2 g  n
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)
) |7 x+ {- y0 B0 T% \% v{
* O: [. W# u% y. N    return (ACCESS_AVAILABLE);
/ P4 a9 z- U2 X* W) D& ^/ b# c}
1 w8 X2 s& R" P7 r1 z& zint messagebox()/////////消息框6 ]3 a+ t6 a  \; F- B; ^+ L8 I/ k
{6 b' Z5 O2 B6 T0 O1 |
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框. b1 C6 {  m- x1 h
    return(0);1 x3 s, x7 m0 k# u
}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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