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

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

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

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

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

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

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

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

pengyh 发表于 2006-8-12 17:42:00

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