CryptAcquireContext - неразрешенный внешний
Я связываюсь со сторонней библиотекой (Poco C++) и получаю следующие неразрешенные ошибки символов от компоновщика. Кажется, что он не может найти "CryptAcquireContextW", "CryptReleaseContext" и "CryptGenRandom".
Согласно информации Microsoft, приведенной здесь, эти функции можно связать с помощью "Advapi32.lib". Я добавил это к своим входам компоновщика, но символы остаются нерешенными.
1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptAcquireContextW@20 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)
1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptReleaseContext@8 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)
1>PocoFoundationCLR.lib(RandomStream.obj) : error LNK2019: unresolved external symbol __imp__CryptGenRandom@12 referenced in function "public: virtual int __thiscall Poco::RandomBuf::readFromDevice(char *,__int64)" (?readFromDevice@RandomBuf@Poco@@UAEHPAD_J@Z)
Я проверил, что Advapi32.lib находится в пути поиска, а Advapi32.dll находится в каталоге Windows, поэтому я не уверен, как эта ошибка продолжает возникать.
Идеи, кто-нибудь?
Спасибо!
1 ответ
Хотя я не могу с готовностью объяснить, почему это сработало, вот что сработало.
Проект, который терпел неудачу, имел "Advapi32.lib", перечисленный в разделе "Наследование" входов компоновщика, но, по-видимому, фактически не был связан с ним.
Я добавил "Advapi32.lib" в раздел "дополнительные библиотеки", и это каким-то образом привело к тому, что он был правильно подобран и связан с ним.
Я собираюсь списать это как различие в том, как VS 2013 был установлен на двух ПК, но это все еще странная странность.