我用的是vc6.0 
在 工程--设置--连接 里加入外部的dll时都报错Multi.dll : fatal error LNK1136: invalid or corrupt file 
原先是可以的,dll文件也没什么损坏,也都放入到根目录下了难道和我前天装了vs.net2005有关系吗?
很郁闷

解决方案 »

  1.   


    给你两个步骤:
    第一,把你现在的文件中的ncb等系统产生的文件删掉,重新进行编译连接
    第二,你先把文件用vs2005试验下看行不行?还不行的话,我自裁了
      

  2.   

    没有lib文件,只有dll文件我用vs6.0  vs2005是来做C#的
      

  3.   


    我在 工程--设置--连接 里引用dll 有没有错网上说必须引用lib文件
      

  4.   

    如果是C/C++的话,在vc编译器要使C与C++正确连接,要使用
    #if defined(__cplusplus)
    extern "C" {
    }
    #if defined(__cplusplus)
      

  5.   

    你怎么可以引用dll呢?而且以前还可以?你确定吗?
    引用.lib
      

  6.   

    恩。是的。我在同一个机器上装了vc6.0和vs2005.发现有些地方不好用。最好是用一个。
      

  7.   

    就是这里错了,如果你要隐式链接DLL,需要添加DLL的LIB文件,不能直接添加DLL文件。
      

  8.   


    我只有这么个dll文件,其他没有
    如何调用这个dll文件呢,听说有种方法叫显示调用
      

  9.   

    如果没有LIB,那应该知道会有哪些接口吧,如果不知,建议用depends看一下,然后在代码中调用。
    如下:HINSTANCE hDll; //DLL句柄 lpAddFun addFun; //函数指针hDll = LoadLibrary("..\\Debug\\dllTest.dll");--加载DLLif (hDll != NULL){addFun = (lpAddFun)GetProcAddress(hDll, "add2Num --要调用的接口名称");if (addFun != NULL){int result = addFun(2, 3);--根据接口定入传参、返回printf("%d", result);}FreeLibrary(hDll);--释放DLL
      

  10.   

    显示调用就不要在项目的连接选项中添加文件了,用LoadLibrary加载DLL,用GetProcAddress获取函数地址,你还需要自己定义一个函数指针类型,将获取的地址转换为该类型后才能调用。