2011-05-16 56 views
2

我有一個Windows應用程序設置如下: 調試 - 建立其靜態鏈接它使用 發行庫的EXE - 建立其鏈接到某個DLL__targv在我的MFC窗口應用程序中爲NULL。 ARGC == 1

我剛剛創建的發佈了一個exe版本,唯一的區別是正在使用的庫中有一個正在構建爲DLL。

當我執行我的應用程序,只要在命令行參數來訪問它崩潰。這是由於__targv是空的,但的argc == 1

有沒有人碰到這個纔來的呢?

+3

顯示如何聲明'main'函數並告訴我們更多關於使用環境(MSVC版本,解決方案配置等)的信息。 – 0xC0000022L 2011-05-16 17:43:13

+0

如果添加參數會發生什麼情況? – 2011-05-16 17:45:34

回答

2

在__targv第一個參數是當前的可執行文件的路徑和文件名。

這就是爲什麼參數計數爲1時嘗試打印屏幕上的__targv[0]的內容,你應該看到類似C:/.../.../foobar.exe(其中.../...是通向你的可執行文件和foobar.exe是exe文件)

+1

那麼爲什麼__targv NULL與__targv [0]中的數據有關? – Joe 2011-05-16 17:41:54

+1

你可以發佈一些你的代碼和輸出,以便我們可以看到究竟發生了什麼? – ALOToverflow 2011-05-16 17:45:06

1

感謝大家的建議和幫助。

如果有人有興趣,這裏是一些關閉的問題。另外,如果其他人有這個問題,這是他們的:

在創建DLL的過程中,我不得不將C運行時庫切換到MD(DLL類型)和(我認爲)MFC鏈接配置UseOfMFC)。

我曾誤混合UseOfMFC類型,我相信這是搞亂_targv以及調用任何AFX功能時造成的異常。

我重新審視該項目,更改所有配置使用DLL型CRT,離開了UseOfMFC不變。這解決了我遇到的問題。

相關問題