iCAx开思工具箱

标题: 教程中的代码重编译后就不能用了 [打印本页]

作者: wel8584    时间: 2011-3-16 15:17
标题: 教程中的代码重编译后就不能用了
我在尝试在ProE中使用MFC开发的对话框,张春桥例子中自带的dll没有问题,但是我把他的源码用我机器上的vc6.0重新编译一下,对话框就出不来了。

后来重新建一个工程,就是简单的调用一个对话框,编译都没问题,源码如下
const int size = 256;
extern "C" int user_initialize(int argc,char *argv[],char *version,char *build, wchar_t errbuf[])
{
ProErr status;
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int status2;
status2 = MyDlg.DoModal();
if (status2 == 0)
{
  AfxMessageBox("OK2");
}
ProMdl part;
wchar_t ZhiShu_List[size]=L"F:\\ZhuiNose.prt.1";
status = ProMdlRetrieve(ZhiShu_List, PRO_MDL_PART, &part);
AfxMessageBox("OK1");
ProMdlDisplay(part);
int win_id;
ProWindowCurrentGet(&win_id);
ProWindowActivate(win_id);
return status;
}
extern "C" void user_terminate()
{
return;
}

运行的时候模型能被打开,OK1那个消息框也能出来,就是对话框出不来,也没有任何错误提示,有高手知道为什么吗?
感觉跟我VC编译有关


作者: wel8584    时间: 2011-3-16 15:47
又仔细查了一下,发现domodal的返回值是-1,这个对话框是个空的,里面没有任何控件,不知道为什么
作者: hyccai    时间: 2011-3-21 19:57
帮不上忙,偶用UI
作者: hust65    时间: 2011-3-22 11:49
dialog的rc沒有設定好?
作者: wel8584    时间: 2011-3-23 15:52
找到原因了。是编译环境没配置好。设置中多了几个lib文件,只要两个就够了,mpr.lib protk_dll.lib

因为设置了强制输出,首次编译即使出错重编译后也忽略了,所以这里很难发现。
作者: api163    时间: 2012-4-21 11:13
为什么多了几个lib文件就不行了?




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