C++ 通过*.dll文件调用*.exe文件并提交参数
我试图在*.dll文件的帮助下启动*.exe文件,而不是直接调用*.exe文件。它将用于能够启动*.dll文件但不能启动*.exe文件的程序C++ 通过*.dll文件调用*.exe文件并提交参数,c++,vb.net,visual-studio-2008,dll,rundll32,C++,Vb.net,Visual Studio 2008,Dll,Rundll32,我试图在*.dll文件的帮助下启动*.exe文件,而不是直接调用*.exe文件。它将用于能够启动*.dll文件但不能启动*.exe文件的程序 这种情况下,BuffSer.EXE是用VB.NET和C++中的BuffSer.DLL文件编写的(我找不到任何关于VB的.NET的DLL代码段)。 由VS2008生成的browser.dll(MFC-dll)的代码段(由我稍微修改)如下所示: [...] CBrowserStartApp::CBrowserStartApp() { system("s
这种情况下,BuffSer.EXE是用VB.NET和C++中的BuffSer.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
”开头,它会显示“browser.dll中的错误。缺少内容v
”。如果我省略了参数“v”,什么也不会发生。不会出现错误,实际应用程序也不会出现错误。我做错了什么
我的下一个问题如下:通常我会使用URL(例如“browser.exe”)等参数启动*.exe文件http://www.google.com
”)。如何将此类URL添加到*.dll文件?与普通程序相同的技巧(例如,args=Environment.GetCommandLineArgs()
)?如何访问它们并将它们转发到实际的*.exe文件
Thx,
Markus G.因为您一直在使用WinApi,所以请使用本机
CreateProcess