私は64と32ビットの両方の右クリックコンテキストメニューを表示するために使用されるシェル拡張DLLを構築しました。 LaunchAppAndWait関数を使用してインストール中にinstallscriptでdllを登録しています。
64ビットマシンではうまく機能していますが、32ビットマシンではうまくいきません。
if (SYSINFO.bIsWow64 ) then
LaunchAppAndWait("", "regsvr32.exe /s " + TARGETDIR ^ "\bin\x64\test.dll" , LAAW_OPTION_WAIT);
else
LaunchAppAndWait("", "regsvr32.exe /s " + TARGETDIR ^ "\bin\test.dll" , LAAW_OPTION_WAIT);
endif;
誰もがこの問題に遭遇しましたか?
回答:
回答№1は0問題があるところに見つかりました。コマンドライン引数にLongPathToQuoteを実行することで問題を解決しました。
dllPath = "/s " +TARGETDIR ^ "\bin\win32\test.dll";
LongPathToQuote(dllPath,TRUE);
LaunchAppAndWait("regsvr32.exe", dllPath, LAAW_OPTION_WAIT);