0

私のsetup.dllには次のものがあります:

#include "stdafx.h"
#include "ce_setup.h"

TCHAR Message[] = _T("TERMS & CONDITIONS\r\n ")
    _T("Do you agree to terms? \r\n");

codeINSTALL_INIT Install_Init
(    
    HWND hwndParent,
    BOOL fFirstCall,
    BOOL fPreviouslyInstalled,
    LPCTSTR pszInstallDir 
)
{
if (!fFirstCall || ::MessageBoxW(0, Message, _T("RmapGeneric"), MB_YESNO) == IDYES)
          return codeINSTALL_INIT_CONTINUE;
      else
          return codeINSTALL_INIT_CANCEL;
}

codeINSTALL_EXIT Install_Exit
(
    HWND    hwndParent,
    LPCTSTR pszInstallDir,
    WORD    cFailedDirs,
    WORD    cFailedFiles,
    WORD    cFailedRegKeys,
    WORD    cFailedRegVals,
    WORD    cFailedShortcuts
)
{
    PROCESS_INFORMATION pi = {0};
    codeINSTALL_EXIT cie = codeINSTALL_EXIT_DONE;
    TCHAR szPath[MAX_PATH];
    _tcscpy(szPath, pszInstallDir);
    _tcscat(szPath, _T("\\"));
    _tcscat(szPath, _T("Application.exe"));
    MessageBox(GetForegroundWindow(), szPath, L"status", MB_OK);
    if (!CreateProcess(szPath, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &pi))
    {
        MessageBox(GetForegroundWindow(), szPath, L"failed", MB_OK);
        cie = codeINSTALL_EXIT_UNINSTALL;
    }
    return cie;
}

最初の関数は機能しますが、Install_Exit は機能しません。私が望むのは、インストール後にアプリケーションが自動的に起動することだけです。

私が間違っていることは何ですか?

4

2 に答える 2

0

OK、.DEFファイルに問題が見つかりました

exit 関数をエクスポートするのを忘れていました:S

于 2010-07-07T06:37:55.330 に答える
0

何が間違っているかについて完全に明白なことは何もありません。ターゲットの実行可能ファイルがそのフォルダーにあると確信していますか? GetLastError を呼び出して、失敗の理由を確認しましたか?

于 2010-07-06T13:07:39.427 に答える