我有一个Windows应用程序设置如下: Debug - 构建一个exe,它静态链接它使用的库 Release - 构建一个链接到DLL的exe
我刚刚创建了发布版本,唯一的区别是使用的其中一个库现在正在构建为DLL。
当我执行我的应用程序时,无论何时访问命令行参数,它都会崩溃。这是因为__targv为NULL,但是argc == 1.
以前有人遇到过这个吗?
答案 0 :(得分:2)
__targv中的第一个参数是当前可执行文件的路径和名称。
这就是参数计数为1的原因。尝试在屏幕上打印__targv[0]
的内容,您应该看到类似C:/.../.../foobar.exe
的内容(其中.../...
是您的可执行文件的路径, foobar.exe
是exe)
答案 1 :(得分:1)
感谢大家的建议和帮助。
如果有人有兴趣,这里有一些关闭问题。此外,如果其他人有这个问题,这是他们的:
在创建DLL的过程中,我不得不将C运行时库切换为MD(DLL类型)和(我认为)MFC链接配置(UseOfMFC)。
我错误地混合了UseOfMFC类型,我认为它会弄乱_targv,并在调用任何AFX函数时导致异常。
我重新访问了该项目,将所有配置更改为使用DLL类型CRT并保持UseOfMFC不变。这解决了我遇到的问题。