我是在调用cryptlib这个库的时候,(cl32.dll),在link时出现错误:
11.obj : error LNK2001: unresolved external symbol __imp__cryptEnd@0
11.obj : error LNK2001: unresolved external symbol __imp__cryptGenerateKey@4
11.obj : error LNK2001: unresolved external symbol __imp__cryptSetAttributeString@16
11.obj : error LNK2001: unresolved external symbol __imp__cryptCreateContext@12
11.obj : error LNK2001: unresolved external symbol __imp__cryptInit@0
源代码如下:#include "stdafx.h"
#include "cryptlib.h"
#include "crypt.h"
 #pragma comment(lib,"cl32.lib") extern "C"_declspec(dllimport) C_RET cryptCreateContext( C_OUT CRYPT_CONTEXT C_PTR cryptContext,
  C_IN CRYPT_USER cryptUser,
  C_IN CRYPT_ALGO_TYPE cryptAlgo );int main(int argc, char* argv[])
{
cryptInit(); CRYPT_CONTEXT cryptContext;
/* Create an RSA public/private key context, set a label for it, and generate a key into it */
cryptCreateContext( &cryptContext, CRYPT_USER_NORMAL, CRYPT_ALGO_RSA );
cryptSetAttributeString( cryptContext, CRYPT_CTXINFO_LABEL, "Private key", 11 );
cryptGenerateKey( cryptContext );
    
cryptEnd();
return 0;
}
//已经将cl32.lib加载到工程中,还是出现这个错误,求达人帮忙~~~
为什么会这样啊

解决方案 »

  1.   

    是不是在工程设置的Link内没有加cl32.lib
      

  2.   

    *.lib *.dll *.h 都拷到哪了?有没有拷到此工程目录下?
      

  3.   

    1 工程设置不正确
    2 DLL版本不正确
      

  4.   

    lnk2001 意思是 找到函数的定义(所以可以正确编译通过) 但是没找到函数的实现。
    连接的时候必须要把函数的实现或其地址连接到最终执行程序的。
    所以它会报这个错。
    所以不管是什么函数,这些函数编译器没法找到他们的地址。
    应该是少了什么lib没有导入 或者你的这个lib里面 没有把这些函数设置为 export