2011-07-18 17 views
1

我正在爲一個Windows 7用戶編寫一個C++程序,當她雙擊某些文件(.ora文件)時,它將成爲默認程序,我需要知道如何才能基本上傳遞給程序文件名[包括路徑],她正試圖打開。由於該程序不會在文件選擇時運行,我不能使用鼠標事件來作弊...我如何有一個Win32平臺C++程序找出哪個文件叫它?如何確定一個叫做C++程序的文件?

感謝, CCJ

+0

谷歌的'Windows文件associations' – vines

回答

2

當雙擊打開一個可執行文件,路徑和名稱的文件的文件結果如第一個命令行參數傳遞。

int main(int argc, char *argv[]) { 
    if(argc<2) return 1; 
    std::ifstream file(argv[1]); 
    // ... 
} 

由於argv中的第一個條目是路徑的可執行,則感興趣的第二個參數,argv的[1]。

+0

的WinMain入口點(http://msdn.microsoft.com/en-us/library/ms633559%28v=vs.85%29.aspx) GetCommandLine功能(HTTP: //msdn.microsoft.com/en-us/library/ms683156%28v=vs.85%29.aspx) –

+0

@Trauma:在這種情況下(假設你只允許一個命令行參數),你可以只需使用lpCmdLine而不是argv [1]。或者將項目選項設置爲使用main而不是WinMain。 – zennehoy

+0

是的,只是添加了Win API鏈接的完整性:) –

相關問題