好像在生成dll的时候,lib是中间文件吧?但debug目录里只有dll生成。

解决方案 »

  1.   

    不是纯资源dll,源程序都是自己写的。我用一个笨的方法是再新建一个static lib project,然后项目中把dll项目相关的源代码都import进来。
    然后产生一个lib,再拷贝到exe项目中,但这样很麻烦,有没有直接dll项目中产生lib的设置?
      

  2.   

    Project->Setting->Link->General中,是不是选择了"Doesn't produce .LIB"?
    另外,这个lib跟你说的static lib不是一回事.
      

  3.   

    没有在general中只有“产生调试信息”和“增加链接”打了勾。在下面的工程选项里是这样的:kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"Debug/scom.pdb" /debug /machine:I386 /out:"Debug/scom.dll" /implib:"Debug/scom.lib" /pdbtype:sept 为什么这里显示有scom.lib 却没有产生这个文件呢?
      

  4.   

    我现在需要创建一个DLL,然后一个程序要用到这个DLL,但编译这个程序的时候需要相应的lib吧?我就是需要这样的一个lib
      

  5.   

    确认build成功了吗?
    在build菜单中Clean一下再重新build试试?
      

  6.   

    1.程序编译\run通过了没..?
    2.通过了, lib应该就生成了, 如果你没指定输出路径, *.lib就在dubug或release目录下
    3.查看工程的导出路径设置了没...?---在你电脑上先搜索下:*.lib, 就知道生存了没了..!!搜索不到
    那就是程序的问题了
      

  7.   

    我每次都是全部重新build的,而且肯定是成功了的。dll重新生成过了。连接 =》 常规 =》输出文件名
    只有Debug/scom.dll而且我发现我的项目里没有.def文件。搜索了,但还是没有。程序的问题?那DLL也产生了亚。
      

  8.   

    def文件不是自动生成的,需要你自己添加.
    可能你的dll没有定义任何输出函数,所以没有生成lib文件.
      

  9.   

    一个DLL,如果测试程序要用到这个DLL,是否一定需要相应的lib?这个lib可否在产生dll的同时一并产生?
      

  10.   

    用LoadLibrary方式可以不需要lib文件.有头文件就够了.
    lib当然可以在产生dll的同时产生.也可以在已有dll的情况下用导出(比如用BCB中的implib).
      

  11.   

    建议再写一个def文件,,正在帮你解决中,,,
      

  12.   

    我用新建一个静态库工程导入所有的源程序后编译出来的是50K的lib,但是我自己写了一个def文件,把我需要导出的函数(不是源程序中所有的函数)导出来才4K。
    而且感觉也是不正确的。
      

  13.   

    在每个函数前加extern "C"__declspec(dllexport)试试,,,
      

  14.   

    将scom.h里的注释一下:
    //int RegisterUser(IC_Info ICinfo);
    //int ChangeUserProp(int instype, const char *content);
    int ChangeUserProps(IC_Info ICinfo);
    //int DeleteUser();
    //int FingerModCmpare();
    //int FingerModUpload(IC_Info *pICinfo);
    //int FingerModDownload(IC_Info ICinfo);然后不必给全部的函数加,只给某几个(大于一个)加,比如:
    extern "C"__declspec(dllexport)int ChangeUserProp(int instype, const char *content)

         . . .
    }
    我这样是可以生成.lib文件的
      

  15.   

    是能生成lib,但是生成的lib只有4K,而且我的测试程序也是可以编译的
    但是运行的时候说找不到dll,我把dll拷贝到运行程序的当前目录就可以了。
    但是如果是通过静态dll工程生成的lib,就有52K,而且我无论在哪执行都可以,不需要在应用程序当前目录下放上dll.
      

  16.   

    是的,但是还有个问题,我编译完成的dll,总是要拷贝到测试程序的当前目录来,有没有好的办法,我新建一个快捷方式也不行,
    在linux上面不都可以用ln来一个链接的么?怎么这样还找不到,每次复制很麻烦。
      

  17.   

    查看你的DLL里面是不是没有标明要输出的函数或者变量(用__declspec(dllexport)表示的)
      

  18.   

    的,但是还有个问题,我编译完成的dll,总是要拷贝到测试程序的当前目录来,有没有好的办法,我新建一个快捷方式也不行, 
    在linux上面不都可以用ln来一个链接的么?怎么这样还找不到,每次复制很麻烦。
    ----------------
    把文件加到工程里就可以了