1

我正在尝试使用 7zip dll 制作一个小型存档程序,但我不知道如何使用它。我不知道 CLSID 和 IID 是在哪里定义的,使用什么 IID 才能将多个文件压缩成一个存档。我的代码看起来像这样:

typedef int (_CreateObject)(const GUID clsid, const GUID iid, void *outObject);
HMODULE hMod = LoadLibrary("7zra.dll");
_CreateObject pfnCreate = (_CreateObject)GetProcAddress(hMod, "CreateObject");
GUID CLSID_CFormat7z = {0x23170F69, 0x40C1, 0x2790, {0x10, 0x00, 0x00, 0x01, 0x10, 0x07, 0x00, 0x00}};
GUID IID_Coder = {0x23170F69, 0x40C1, 0x278A, {0x00, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00}};
ICompressCoder2 pCoder = NULL;
int i = pfnCreate(&CLSID_CFormat7z, &IID_Coder, (void*)&pCoder);

我总是得到一个 NULL 指针,即使我尝试了不同的 GUID。谁能帮我举个简单的例子吗?

4

0 回答 0