iCAx开思工具箱

标题: 【求助】proe二次开发中菜单项的添加问题。 [打印本页]

作者: weijians    时间: 2003-5-19 15:14
标题: 【求助】proe二次开发中菜单项的添加问题。
编写了一个菜单项文件
但在用promenubuttonaction()时有一个参数项是设置按钮动作,我就想简单点,不用设置动作了,就光加一个按钮,而没有具体的动作功能,不知要怎样?
作者: jhcome2002    时间: 2003-5-19 16:25
写一个空函数不就可以了?
作者: weijians    时间: 2003-5-19 16:37
编译能通过,但连接的时候出现下面错误,不知道是什么原因?
protk1.obj : error LNK2001: unresolved external symbol _ProMenuProcess
protk1.obj : error LNK2001: unresolved external symbol _ProMenuCreate
protk1.obj : error LNK2001: unresolved external symbol _ProMenubuttonActionSet
protk1.obj : error LNK2001: unresolved external symbol _ProMenuDelete
protk1.obj : error LNK2001: unresolved external symbol _ProMenuFileRegister
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/protk1.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.
作者: NOCTURE    时间: 2003-5-19 17:28
可否写的详细点一供大家参详?
作者: weijians    时间: 2003-5-20 08:30
我是这样的:
#include<protoolkit.h>
#include<promenu.h>
#include<stdio.h>
int user_initialize()
{
  int menuId,action;
  ProMenuFileRegister("mymenu","mymenu.mnu",[$menuId)]
  ProMenubuttonActionSet("mymenu","Quit Checks",(ProMenubuttonAction)ProMenuDelete,NULL,0);
  ProMenubuttonActionSet("mymenu","mymenu",(ProMenubuttonAction)ProMenuDelete,NULL,0);
  ProMenuCreate(PROMENUTYPE_MAIN,"mymenu",[$menuId)]
  ProMenuProcess(" mymenu",[$action)]
  return(0);
}
  int user_terminate()
  {
  return(1);
  }
  
作者: TOOL    时间: 2003-5-20 15:13
可能你的include没有起到作用
设置好option了没有???
作者: weijians    时间: 2003-5-20 16:50
option 的directories中设置了..\protoolkit\includes   ,..\protoolkit\protk_appls\includes  ,..\prodevelop\include,  ..\prodevelop\prodv_appls\includes   ,..\protookit
这些我都加了啊。
作者: weijians    时间: 2003-5-20 16:59
我想问一下,我在做的过程中都没用makefile文件,我的想法是这个程序编译连接通过了,生成exe文件,再做一个注册文件,然后在pro中运行,不知这样是否真确?
作者: zjcbhy    时间: 2003-5-20 17:21
思路是正确的。
在VC环境中设置各种文件(头文件和库文件)路径以及指定相应的库文件等的过程其实就是一个制作makefile的过程。
  
你上面的例子中没有添加库文件
Project/setting
在object/library modules添加如下库文件:
  protoolkit.lib protk_dll.lib mpr.lib wsock32.lib libcd.lib libc.lib  
如下图:
作者: TOOL    时间: 2003-5-20 17:57
对,原因就是楼上所说的了,lib的问题
作者: weijians    时间: 2003-5-21 08:39
恩,真是这个问题,添加之后就通过了!
谢谢zjcbhy ,TOOL。
再问一下,是不是其他所有程序都是添加这些连接库文件?
  
   
  
作者: zjcbhy    时间: 2003-5-21 10:17
基本上是这样的。
作者: weijians    时间: 2003-5-21 10:21
谢谢,我也对照提供的makefile文件看了,需要添加哪些dll 文件。
空函数还行,要编一个动作函数好像挺难的啊?
作者: weijians    时间: 2003-5-21 11:23
再想请教zjcbhy,就是添加dll文件有什么依据啊?
比如出现下面的问题时是缺少哪个dll文件?
  
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/fengyuan1.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
  
我再加了nafxcwd.dll还是不行。
作者: zjcbhy    时间: 2003-5-21 13:31
添加上述库文件的主要依据是参考pro/toolkit自带的make文件。
作者: weijians    时间: 2003-5-21 15:17
谢谢zjcbhy的留言!
不过上面的程序不知道是缺少了什么,正在调试.......
作者: dongqiyer    时间: 2003-5-22 16:49
除了上面的程序
还需要在text(菜单资源目录)下,增加相应的菜单资源。
作者: weijians    时间: 2003-5-23 15:43
呵呵,添加菜单资源和这个没关系吧?
不过上面的程序应该是在MFC  APPWizard中打开的,这样就没问题了。
作者: TOOL    时间: 2003-5-23 18:11
有关系,看是那个菜单了,要是菜单管理器下的menu就要菜单资源~~
作者: zjcbhy    时间: 2003-5-24 08:32
关于菜单资源大家必须首先明白以下两点:
1、如果创建菜单管理器菜单,必须编写菜单资源文件,后缀名为mnu或aux。
2、如果创建主菜单(顶级菜单),必须编写相应信息资源文件(如message.txt),此文件包含菜单各项的相关显示和帮助文本。
作者: great    时间: 2003-5-29 21:00
如果你仅仅想添加一个菜单项,而不实现功能的话,完全没必要调用函数promenubuttonaction(),只要在菜单文件中添加一项,注册菜单就好了。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3