我的MFC窗口应用程序中__targv为NULL。 argc == 1

时间:2011-05-16 17:35:58

标签: c++ mfc argv afx

我有一个Windows应用程序设置如下: Debug - 构建一个exe,它静态链接它使用的库 Release - 构建一个链接到DLL的exe

我刚刚创建了发布版本,唯一的区别是使用的其中一个库现在正在构建为DLL。

当我执行我的应用程序时,无论何时访问命令行参数,它都会崩溃。这是因为__targv为NULL,但是argc == 1.

以前有人遇到过这个吗?

2 个答案:

答案 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不变。这解决了我遇到的问题。