我试图在 *.dll 文件的帮助下启动 *.exe 文件,而不是直接调用 *.exe 文件。它将用于能够启动 *.dll 文件但不能启动 *.exe 文件的程序。
在这种情况下: browser.exe 是用 vb.NET 编写的,而 browser.dll 文件是用 C++ 编写的(我找不到任何适用于 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 并添加任何参数,则会出现错误消息。然后程序启动,但错误信息仍然存在。Error in browser.dll. Missing Content v
如果我以“”开头,它会说“ Rundll32.exe browser.dll v
”。如果我省略参数“v”,则不会发生任何事情。既不会出现错误,也不会出现实际应用。我在这里做错了什么?
我遇到的下一个问题如下: 通常我会使用诸如 URL 之类的参数(例如,“ browser.exe http://www.google.com
”)来启动 *.exe 文件。如何将此类 URL 添加到 *.dll 文件?与通常程序相同的技巧(例如,args = Environment.GetCommandLineArgs()
)?那么我如何访问它们并将它们转发到实际的 *.exe 文件呢?
谢谢,马库斯 G.