我的ARX在运行时候弹出红色警告错误,不知道如何解决!?
<P>我的一个arx调用了一个纯C++的dll,在这个C++的dll中,我定义了一个文件选择的对话框,这样,当arx调用dll 的时候会弹出对话框,要求用户指定文件路径,然后当指定完路径点击打开后,总是弹出一个红色的警告框,debug版和release版都有这个问题,代码如下,请版主帮个忙,不胜感激!!!</P><P> char szFileName[] = "TXT Files (*.txt)|*..txt";<BR> CFileDialog DlgFileOpen( true<BR> , NULL<BR> , NULL<BR> ,OFN_PATHMUSTEXIST|OFN_LONGNAMES|OFN_HIDEREADONLY<BR> ,szFileName);</P>
<P>每次到DlgFileOpen时就会出现红色警告,很常见的那种选择忽略就可以继续进行下去,很烦人的,可是不知道怎么解决<IMG src="Skins/Default/emot/em06.gif" align=middle border=0></P>
<P>虽然不是直接的原因,但是你的编译有误,否则不会assert出错的,请确认你的所有编译使用的都是“多线程DLL”,而不是“多线程调试DLL”,在include<afxwin.h>的时候,一定要把_DEBUG undef掉,否则会出问题,</P>
<P>另外你列出的代码没有特别的问题,问题出在别的地方</P> <P>问题出在下行上"</P>
<P>char szFileName[] = "TXT Files (*.txt)|*..txt";</P>
<P>上边的含义是给szFileName分配比后边多一个字节的字串,实际返回的文件名要比上述字符大建议改为下格式试试:</P>
<P>char szFileName="TXT Files (*.txt)|*..txt";</P>
<P> </P>
<P><BR> </P> 谢谢各位的指导,我将这个Dll按照ARX 文档中的步骤重新封装了一下,发现没有了这个问题,关于打开文件查询对话框的部分我也没有做改动,发现一切都正常了,我怀疑是因为工程设置不合理所导致的,估计就是二搂所说明的那样,编译有问题,工程设置不对!
页:
[1]