pengyh 发表于 2006-8-2 16:56:00

我的ARX在运行时候弹出红色警告错误,不知道如何解决!?

我的一个arx调用了一个纯C++的dll,在这个C++的dll中,我定义了一个文件选择的对话框,这样,当arx调用dll 的时候会弹出对话框,要求用户指定文件路径,然后当指定完路径点击打开后,总是弹出一个红色的警告框,debug版和release版都有这个问题,代码如下,请版主帮个忙,不胜感激!!!
charszFileName[] = "TXT Files (*.txt)|*..txt";
CFileDialog DlgFileOpen( true
, NULL
, NULL
,OFN_PATHMUSTEXIST|OFN_LONGNAMES|OFN_HIDEREADONLY
,szFileName);
每次到DlgFileOpen时就会出现红色警告,很常见的那种选择忽略就可以继续进行下去,很烦人的,可是不知道怎么解决
http://bbs.mjtd.com/Skins/Default/emot/em06.gif


shinjikun 发表于 2006-8-3 00:59:00

虽然不是直接的原因,但是你的编译有误,否则不会assert出错的,请确认你的所有编译使用的都是“多线程DLL”,而不是“多线程调试DLL”,在include的时候,一定要把_DEBUG undef掉,否则会出问题,
另外你列出的代码没有特别的问题,问题出在别的地方

pglyxq 发表于 2006-8-3 09:09:00

问题出在下行上"
charszFileName[] = "TXT Files (*.txt)|*..txt";
上边的含义是给szFileName分配比后边多一个字节的字串,实际返回的文件名要比上述字符大建议改为下格式试试:
char szFileName="TXT Files (*.txt)|*..txt";



wzz1968 发表于 2006-8-3 15:29:00

谢谢各位的指导,我将这个Dll按照ARX 文档中的步骤重新封装了一下,发现没有了这个问题,关于打开文件查询对话框的部分我也没有做改动,发现一切都正常了,我怀疑是因为工程设置不合理所导致的,估计就是二搂所说明的那样,编译有问题,工程设置不对!
页: [1]
查看完整版本: 我的ARX在运行时候弹出红色警告错误,不知道如何解决!?