【发布时间】:2020-06-04 11:54:05
【问题描述】:
我用 Crypto++ 编译了一个程序,当我尝试启动它时,我得到了下面的错误消息。 CryptAcquireContextA 被 Crypto++ 和 boost 使用。
The procedure entry point CryptAcquireContextA could not be located in the dynamic link library C:\myexe.exe
CryptAcquireContextA 函数位于 Advapi32.dll 中,我已经尝试将其复制到我的 .exe 旁边。我尝试链接到-ladvapi32,但这也没有用。
我在 Ubuntu 下编译 Crypto++ 并使用 i686-mingw-w64 进行增强。
这是我得到的确切错误的屏幕截图:
这里是依赖walker的截图:
CryptAcquireContextA 位于 ADVAPI32.DLL 中,由 cryptopp 使用。
我在可执行文件旁边有 WINFSP-X64.DLL,它并没有抱怨那个。
我也尝试使用 x86_x64-mingw-w64 编译它,这就是我使用 WinFsp 的 x64 dll 的原因。
我刚刚注意到 WinFsp 也在使用 CryptAcquireContextA,所以问题可能出在 WinFsp 中。可能和mingw不兼容?
【问题讨论】:
-
“但这也没用” - 发生了什么?
-
@sehe 与标题中的错误相同。什么都没有改变...
-
如果您使用
-static构建程序会发生什么?您实际上是在 Windows 上运行程序,还是使用 Wine? -
@BrechtSanders 我正在使用 VirtualBox 在 Windows 10 VM 中运行我的程序。我尝试使用
-static进行编译。我现在不再需要任何额外的 dll,但错误仍然存在。 -
@Gary 你能发布你得到的确切错误以及你得到它的确切时间吗?另外,您能否使用 Dependancy Walker (dependencywalker.com) 检查您的 .exe 以查看它仍然依赖于哪些 DLL?