在我的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却没有。 我想要的是在安装后应用程序自动启动。
任何建议我做错了什么?
答案 0 :(得分:0)
关于什么是错的,没有什么是完全明显的。您确定目标可执行文件位于该文件夹中吗?您是否调用了GetLastError来查看为什么它失败了?
答案 1 :(得分:0)
好的,我在.DEF文件中找到了问题
我忘了导出退出功能:S