[摘要]OF_WRITE);LZCopy(zhfSource, zhfDest);LZClose(zhfSource);LZClose(zhfDest);int WINAPI WinMain(HINSTAN...
OF_WRITE);
LZCopy(zhfSource, zhfDest);
LZClose(zhfSource);
LZClose(zhfDest);
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WriteResourceToFile(hInstance, ID_COMPRESSED_SETUP, "AppSetup.ex_");
DecompressFile("AppSetup.ex_", "AppSetup.exe");
DeleteFile("AppSetup.ex_");
// 启动 AppSetup.exe
PROCESS_INFORMATION procInfo;
STARTUPINFO startInfo;
memset(&startInfo, 0, sizeof(startInfo));
CreateProcess(0, "AppSetup.exe", 0, 0, FALSE, NORMAL_PRIORITY_CLASS, 0, 0,
&startInfo, &procInfo);
}
从代码中可以看到压缩的 Setup 程序是如何作为安装程序的资源保存的。按照本文前面讨论的思路。DecompressFile 函数示范了 LZCopy API 的使用方法。安装程序重新创建 AppSetup.exe,然后运行它。为了顺利编译和生成安装程序,需要将 lz32.lib 添加到项目的编译选项中,通常这个文件在 Visual Studio 的安装目录中,如:
Visual Studio .NET 2003:
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib
Visual C++ 6.0:
C:\Program Files\Microsoft Visual Studio\VC98\Lib
在 Visual Studio.NET 中的添加方法是:
项目(P)
关键词:用自删除dll完成应用程序的安装/删除代码