QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我是一个刚接触二次开发的新手,刚买了一本 PROE4.0二次开发实例解的书,但是我照书上面看第一节基础,新增菜单条,按书上一步一步来但是总是编译成不成功
6 j3 ~4 }& r4 A- P3 Q, K0 C' M3 v, m/ B: p( Q$ s+ O
请高手指点下4 ^) y( h& Q( o
# {* d* ^6 Z) J% }; r1 P5 ?
// 258mj.cpp : 定义 DLL 的初始化例程。1 q# d1 y( C4 S, G3 @8 R
//
, u3 e$ _3 ^" k. ~/ M
7 l: D9 q0 n. K. i#include "stdafx.h"
( F* D0 A. y- K7 e' X2 s7 z9 b#include "258mj.h"
0 J$ h* F1 @! j  r3 n/ ^5 }+ L  O' u( p- ^
#include"ProMenu.h"
5 u, H: r- w% x: e2 i#include"ProUtil.h"+ F1 p! k( b8 K5 m3 C
#include"ProMenubar.h": c4 \- o! G; E' b7 q, r4 Y% y- _8 E

5 v% |' O2 h  f* j8 f#ifdef _DEBUG8 r$ t) \) g; u0 m% t6 B' B( a
#define new DEBUG_NEW6 s9 s+ z8 V/ w8 Y* A  P3 |4 E
#endif
6 L$ z; r( E1 W9 k( d: d( n3 J6 {. i" T
//' I' k1 K7 x) _3 g# [! T
//TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
$ O/ u4 {) {/ E0 X$ N; A//        则从此 DLL 导出的任何调入) m5 |3 \) Q' C
//        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到3 N# @" o0 B$ K2 n
//        该函数的最前面。4 o0 l2 D9 U* l
//
# P# O, P% e6 V0 R  {7 l//        例如:% K8 a6 E1 g( R2 A! n
//
7 N, w8 ?/ o; T  x! V& _; m5 A0 U//        extern "C" BOOL PASCAL EXPORT ExportedFunction(): P! J0 S2 n9 h' F1 V& R  [; s
//        {: J0 I. K6 L3 Z+ |: C" c
//            AFX_MANAGE_STATE(AfxGetStaticModuleState());% ]. m. s* l- l) }  u
//            // 此处为普通函数体
$ ?) Z) b/ L% a! |4 \//        }
+ o( z1 i! @6 S) X9 ^6 D* }2 |//& _; }& x" ^0 N2 R# V/ q4 u7 A
//        此宏先于任何 MFC 调用/ k) ]( ~, P0 B
//        出现在每个函数中十分重要。这意味着6 E( N2 a! X- A* K+ g
//        它必须作为函数中的第一个语句
7 b% t( s2 h* e0 ?, I! `7 ~; ]//        出现,甚至先于所有对象变量声明,& o9 b! R% P; E4 R
//        这是因为它们的构造函数可能生成 MFC
( u4 D# A5 E2 o5 ^//        DLL 调用。; [* a% X, Q  C" X
//1 j5 Z0 t- Q) ?0 H6 k3 d$ a# z
//        有关其他详细信息,, i5 f+ m6 j/ V; T
//        请参阅 MFC 技术说明 33 和 58。
4 t# N$ V9 G; I  A0 ^; l2 k//" v3 U; F0 l% {' ^4 T; C
/ q% _* v% I2 }+ B/ Z! F6 \

! X2 P/ q  x* J// CMy258mjApp! P& @+ A% ^- C# F5 j

7 w, G" n1 q8 @7 Z& _" [( BBEGIN_MESSAGE_MAP(CMy258mjApp, CWinApp)
9 G7 _, B7 u" A8 R/ @END_MESSAGE_MAP(): \7 F' c$ U; ^% l* J5 w1 L! M
$ Y+ x7 k' t! A
7 v& H- C) M2 J: k- F
// CMy258mjApp 构造/ i! A2 B9 w8 a4 F' g
" N  G7 b) c' z# _- k  L
CMy258mjApp::CMy258mjApp(), O" x' W. ?: x8 X: o% N- B1 B
{
2 @/ j5 y5 D! C+ J  n% ]9 }2 n; f    // TODO: 在此处添加构造代码,. u$ W, y  f$ Z. }  y; |
    // 将所有重要的初始化放置在 InitInstance 中  D) X7 B1 }- X& o7 |" Q
}
. m3 w  K' @4 \  L0 \4 F2 @6 j0 V1 Q' i/ k) p0 s

% K/ }) p$ F& r// 唯一的一个 CMy258mjApp 对象2 h" A3 E, S3 |8 f( a

+ m0 M' q, ]' MCMy258mjApp theApp;
: a& i4 ]& `9 y
; B) v/ l& f$ g; g0 }) r# ~$ n0 S3 F% f8 g  B9 u
// CMy258mjApp 初始化
0 B1 o! |- U" q5 H
3 t( V$ ^$ w1 h; L+ u, ]BOOL CMy258mjApp::InitInstance()( N" O6 J1 y; }
{
4 k3 C7 a, x* w! W    CWinApp::InitInstance();) H$ j& R- C* K; m) \4 ~8 p

* H% T4 \/ Q' M' w7 P    return TRUE;
( W* J5 L" [1 y" B8 {9 q% g0 O7 p4 z( ]8 p7 C
( q* v* o( m( r3 v
extern "C" int user_initialize()
8 G( _2 S( T; t{
$ R: E! I% D1 n+ a- y2 K     ProError     status;/ x& O( o/ X5 v2 f
     ProFileName  message_file;' E' N9 J" i8 K1 O
     uiCmdCmdId   cmd_id1;
/ J3 @& F  ~: [$ ^; o     uiCmdCmdId   cmd_id2;
2 R) o$ g7 {- W( U7 T) G% v; Q3 m' M: W+ G: n
     ProFileName MsgFile;
2 `" f( U  M0 B: x1 _) v1 Q     ProStringToWstring(MsgFile, "Message2.txt");# Q  o6 U* a0 M
     status=ProMenubarMenuAdd ("CHECK", "CHECK","Utilities", PRO_B_TRUE, MsgFile);
, k; m8 W) W# h
' `8 J/ `; u: _/ s2 v) m) p     status = ProCmdActionAdd("ShowTest1",(uiCmdCmdActFn)messagebox,uiCmdPrioDefault,AccessDefault,
' F5 A% U& a# `( V$ x              PRO_B_TRUE,PRO_B_TRUE,&cmd_id1);3 j! U7 @/ l( P7 z: g7 {
     status = ProMenubarmenuPushbuttonAdd("CHECK", "messagebox", "messagebox","Active messagebox menu", NULL,; q& H% y' h- P% Z. y2 s% v$ m
              PRO_B_TRUE, cmd_id1, ProStringToWstring(message_file, "Message2.txt"));+ ~  w6 \5 S- a4 y1 [! Q' Z

0 E" P! e7 k8 B9 e7 P3 q+ q     status = ProCmdActionAdd("ShowTest2",(uiCmdCmdActFn)modelpath,uiCmdPrioDefault,AccessDefault,
& J8 a# ]2 d8 h" P7 N# d0 T, n              PRO_B_TRUE,PRO_B_TRUE,&cmd_id2);8 V9 c4 s/ u7 W- @
     status = ProMenubarmenuPushbuttonAdd("CHECK", "modelpath", "modelpath","Active modelpath menu", NULL,9 y  Q+ O# f/ L% B% E% p
              PRO_B_TRUE, cmd_id2, ProStringToWstring(message_file, "Message2.txt"));
6 v0 W! r: L  T5 r
2 R  x3 {9 x4 w7 V7 J     return status;
; R' T) X$ \" {( C7 u8 C) `: ^}5 R. ~7 A8 a  l+ {  O

9 ^9 u' Z0 r0 A8 l* e1 Dextern "C" void user_terminate()
* L- ^! M/ y9 @6 R& D1 c{# M% b1 v3 g, v1 n- @2 ^' E! W. X
   AFX_MANAGE_STATE(AfxGetStaticModuleState());
3 {2 i, R( `% M3 M* J+ F}# A, [8 ^% i/ l- O) [
/*================================================================*\
& G! a* f6 u/ ]% UFUNCTION: AccessDefault(); A/ O2 S- K9 r! A/ U
\*================================================================*/& u2 \! g$ q4 X
static uiCmdAccessState AccessDefault (uiCmdAccessMode access_mode)) m, [% a' D! L$ w: r
{4 A; ]% r7 G0 |9 `5 I9 {0 L
    return (ACCESS_AVAILABLE);+ X; d: I2 M; |" R9 p8 |3 U# v
}
& d/ L( c* w0 Z) }9 m* d: [int messagebox()/////////消息框% x( L- J2 _) x+ w. l( U$ S# _5 r/ G7 l* u
{" v6 u) s, {1 Z( p0 n3 K) f
    AfxMessageBox(_T("第一个程序!"));////弹出一个消息框4 Q2 |' Z) P8 S
    return(0);
  M9 G6 w/ T( w! O  h. v}
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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