我正在爲一個Windows 7用戶編寫一個C++程序,當她雙擊某些文件(.ora文件)時,它將成爲默認程序,我需要知道如何才能基本上傳遞給程序文件名[包括路徑],她正試圖打開。由於該程序不會在文件選擇時運行,我不能使用鼠標事件來作弊...我如何有一個Win32平臺C++程序找出哪個文件叫它?如何確定一個叫做C++程序的文件?
感謝, CCJ
我正在爲一個Windows 7用戶編寫一個C++程序,當她雙擊某些文件(.ora文件)時,它將成爲默認程序,我需要知道如何才能基本上傳遞給程序文件名[包括路徑],她正試圖打開。由於該程序不會在文件選擇時運行,我不能使用鼠標事件來作弊...我如何有一個Win32平臺C++程序找出哪個文件叫它?如何確定一個叫做C++程序的文件?
感謝, CCJ
當雙擊打開一個可執行文件,路徑和名稱的文件的文件結果如第一個命令行參數傳遞。
int main(int argc, char *argv[]) {
if(argc<2) return 1;
std::ifstream file(argv[1]);
// ...
}
由於argv中的第一個條目是路徑的可執行,則感興趣的第二個參數,argv的[1]。
的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) –
@Trauma:在這種情況下(假設你只允許一個命令行參數),你可以只需使用lpCmdLine而不是argv [1]。或者將項目選項設置爲使用main而不是WinMain。 – zennehoy
是的,只是添加了Win API鏈接的完整性:) –
谷歌的'Windows文件associations' – vines