从C ++ / CLI调用WinINET时,LNK2028未解析的令牌

时间:2012-03-04 23:32:14

标签: c++-cli

由于IE 9.0.2 update我的插件不起作用。我需要获取用户cookie才能正确处理与用户相关的操作。

#include <windows.h>
#include <wininet.h>

void MyClass::Exec(String^ a, String^ b) {
    HANDLE hCacheDir; 
    DWORD size = 4096;
    INTERNET_CACHE_ENTRY_INFO entry;
    entry.dwStructSize = size;
    hCacheDir = FindFirstUrlCacheEntry(L"cookie:my.domain.com", &entry, &size);
    if (hCacheDir) {
        String^ file = gcnew String(entry.lpszLocalFileName);
        ...
    }
}

当我尝试编译此C ++ / CLI代码时,它会抛出编译错误:

  

错误1错误LNK2028:未解析的令牌(0A00002E)“extern”C“void *   __stdcall FindFirstUrlCacheEntryW(wchar_t const *,struct _INTERNET_CACHE_ENTRY_INFOW *,unsigned long *)“(?FindFirstUrlCacheEntryW @@ $$ J212YGPAXPB_WPAU_INTERNET_CACHE_ENTRY_INFOW @@ PAK @ Z)   在函数“public:static void __clrcall中引用   MyClass :: Exec(类System :: String ^,类System :: String ^)“   (?Exec的@ @@ Degoli $$ FSMXP $ AAVString @ @@系统0 @ Z)

我对C ++的东西不太熟悉。我更喜欢C#。我该怎么办?

1 个答案:

答案 0 :(得分:2)

您需要确保链接到相应的lib文件。

将Wininet.lib添加到项目属性中|链接器|输入|附加依赖