我想在一个vc工程里引用一个做好的a.dll
我的做法是:
1.在project setting里注明link这个a.lib
2.a.lib和a.dll放在debug目录和工程目录下
3.要引用的函数为:
void* bc;
int size;
bc = newIt(size); 
由于第三方没有提供头文件,
所以我自己建了一个h文件,提供函数的声明:
void* newIt(int);
4.然后进行编译:总是出现这样的错误:
error LNK2001: unresolved external symbol "void * __cdecl newIt(int)" (?newIt@@YAPAXH@Z)5.请问这个是什么问题啊?
a.是我引用的lib方法不对吗?
b.是我自定义的头文件的函数声明格式不对吗?
请大家多多指教,谢谢!!

解决方案 »

  1.   

    另外,用ultraedit在a.dll里可以查找到“newIt”这个函数的
      

  2.   

    a.lib不能放在debug目录下,如果什么都不加,程序默认找工程目录,就是有dsw,cpp等的那个目录
      

  3.   

    to bluestar:a.lib我在debug目录和工程目录都放了
    to catyou:def文件我写不了啊,这个dll是别人做的,我只有dll和lib
      

  4.   

    是不是应该这么申明
    _declspec(dllimport) void* newIt(int);
      

  5.   

    如果该函数是使用C++做的话,它会被“乱砍"所以要使用dumpbin查看一下
    dumpbin dllname /exports
      

  6.   

    to Cstarter:
    我用dumpbin dllname /exports看了,但是只能看到函数名列表,并不能看到函数的参数啊
    另外,乱砍是什么意思啊》?
    to dongfa:
    声明错了吗?