2012-05-21 60 views
0

我試圖在* .dll文件的幫助下啓動* .exe文件,而不是調用*。 exe文件直接。它將用於能夠啓動* .dll文件但不能* .exe文件的程序。通過* .dll文件調用* .exe文件並提交參數

在這種情況下:browser.exe是用vb.NET和C++編寫的browser.dll文件(我找不到vb.NET的任何dll代碼片段)。

的代碼段爲已由VS2008生成和我已經修改一點點BROWSER.DLL(MFC-DLL)如下所示:

[...] 
CBrowserStartApp::CBrowserStartApp() 
{ 
    system("start .\\browser.exe"); 
} 

CBrowserStartApp theApp; 

BOOL CBrowserStartApp::InitInstance() 
{ 
    CWinApp::InitInstance(); 
    system("start .\\browser.exe"); 
    return TRUE; 
} 

我可以編譯它沒有錯誤。

有趣的是,如果我用Rundll32.exe啓動dll並添加任何參數,就會出現錯誤消息。然後程序啓動,但錯誤信息仍然存在。如果我以「Rundll32.exe browser.dll v」開頭,它會說「Error in browser.dll. Missing Content v」。如果我省略參數「v」,則什麼都不會發生。無論是出現錯誤還是實際的應用程序。我在這裏做錯了什麼?

我的下一個問題如下:通常,我使用諸如URL之類的參數(例如「browser.exe http://www.google.com」)來啓動* .exe-File。如何將這些URL添加到* .dll文件?與通常的程序相同的技巧(例如args = Environment.GetCommandLineArgs())?我如何訪問它們並將它們轉發到實際的* .exe文件呢?

THX, 馬庫斯G.

回答

1

既然你alrady使用WINAPI,使用本機CreateProcess

相關問題