在一个lib工程中有一个函数void ifoGetInfo(const char *ifo_name,int use_aspi,int *time,int *nb_cells,int *nb_pgc);,在另外一个工程中运用将生成的lib文件加入到工程中,编译的时候会有以下的提示:error LNK2001: unresolved external symbol "void __cdecl ifoGetInfo(char const *,int,int *,int *,int *)" (?ifoGetInfo@@YAXPBDHPAH11@Z),我觉得是编译器的设置上的问题.在dll工程里面的stdafx.h加上#pragma comment(lib,"lib工程.lib")还是不行。这个问题很紧急,有谁愿意帮我解决,我愿意送他1000分,把邮件地址告诉我,给把源程序发给他。

解决方案 »

  1.   

    在与.lib相应的.h文件中把所有导出文件用extern "C"阔起来
      

  2.   

    __declspec( dllexport ) void ifoGetInfo();还要在你的DEF文件中导出
      

  3.   

    唉,我遇到过n多次这种事情了,原因很多啊,不看源程序很难讲,不知道你解决了没,我的email:[email protected]
      

  4.   

    看看是不是ifoGetInfo重复定义了,或者ifoGetInfo所在的.cpp文件没有被加到lib工程
      

  5.   

    我给你看了 
    ifoGetInfo的相关错误已全部解决(关键之处就在于decss.h中的
    _cplusplus //注意单下划线,换成双的(__cplusplus)就行了
      

  6.   

    你的类似这些的外部全局函数定义在哪????extern void DisplayError(char *txt);
    extern void DisplayWarning(char *txt);
    extern void DisplayInfo(char *txt);
    extern void DisplayInfo(char *txt);
    ............
      

  7.   

    hakki(yao) 你把修改后的文件全部发给我好吗,我的邮件地址[email protected]
      

  8.   

    除了将(_cplusplus)换成(__cplusplus)外还要修改什么呢,我已经换了,还是不行
      

  9.   

    看看你的Project和lib文件的对MFC连接是否一致,比如你的Project是using share MFC library,而lib是static的话,肯定会出问题的。
      

  10.   

    以前的包里有debug.txt吧 在三个文件夹外
    我已经重发了 请查收
    这次有把附件打开来看 看得很清楚 你不要再告诉我找不到debug.txt哦 :D
      

  11.   

    Hakki(yao),真是好是多磨,这次什么都没有收到,你给我,[email protected][email protected]都发一份吧。
      

  12.   

    上MSN吧 嘿嘿 我今天新申请了一个 上面只有你一个
    号:[email protected]
      

  13.   

    我已发[email protected][email protected](大眼睛?) :DDDDD
      

  14.   

    呵呵 把分只给我一个人 人家还以为是倒分呢?
    其实ruihuahan(飞不起来的笨鸟) 没看源码就知道是extern "C"的问题 应该给分
    还有几个也帮了你嘛
    给我100分我当然高兴了 另外900分就算了吧 现在分难来 反正我也没花多少时间(给你发了3次email倒是花了一点时间 呵呵)
      

  15.   

    本贴可以总结如下:将__cplusplus写成了_cplusplus导致extern "C"没用