我正在尝试使用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。 请问一个简单的例子吗?