*.exe ファイルを直接呼び出すのではなく、*.dll ファイルを使用して *.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 ファイルに転送するにはどうすればよいですか?
Thx、Markus G.