可能是呢的类定义没有加上 
__declspec( dllimport ) 

解决方案 »

  1.   

    用Depends来查看一下你的要调用的DLL是否有调用的函数,可能函数名不对.
      

  2.   

    类定义如下:
    #ifdef MYSERIALDLL_EXPORTS
    #define MYSERIALDLL_API __declspec(dllexport)
    #else
    #define MYSERIALDLL_API __declspec(dllimport)
    #endifclass MYSERIALDLL_API CMySerialDll
      

  3.   

    调用的DLL中的类:
    CMySerialDll mySerialDll;
    只有这一句话,如果去掉的话,就没有错误!但是也没有调用DLL的export的类啊!
    :-((
      

  4.   


    唯一的可能就是你没有正确 export 类或函数 。如你所说,在你编译DLL,在你dll工程里 里面是否有定义宏 MYSERIALDLL_EXPORTS ?你可以用VC的工具Depences 看看你的dll是否有export出来的类和函数。仔细检查一下吧!
      

  5.   

    在DLL的project中的DllMain中不做任何处理,是否与此有关?
    我一直在想是否需要一个初始化函数来生成一个对象实例。
    在我的代码中找不到这种函数,我也是看别人的代码,没有找到可能的函数。
      

  6.   

    请教如何使用VC的工具Depences 查看dll是否有export出来的类和函数,我在Tools中没有找到。
      

  7.   

    dependency walker,tools中为depends.
      

  8.   

    在DllMain 中不需做任何处理也没问题的。你的dll工程中定义了 MYSERIALDLL_EXPORTS 吗?
      

  9.   

    dll工程中的定义:
    #ifdef MYSERIALDLL_EXPORTS
    #define MYSERIALDLL_API __declspec(dllexport)
    #else
    #define MYSERIALDLL_API __declspec(dllimport)
    #endif但在dll的cpp源文件中如果加上
    #define MYSERIALDLL_EXPORTS
    就总出现宏重复定义的warning,我看的相关文章讲在export类的定义文件中应该加上这个宏,以使用__declspec(dllexport)。不明白。
      

  10.   

    你的 MYSERIALDLL_API  定义应该加在
    Project-》setting-》C/C++ -->Preprocessor Define
      

  11.   

    1。你的接口函数写得对不对:
    __declspec(dllexport) unsigned long __stdcall  Function1(...);
    __declspec(dllexport) char * __stdcall  Function2(...);2。你的目录下少了一个.DEF文件吧?
       假设你的Project名为Project,DLL名为dll,则:
       你在FileView窗口中,Resource Files下新建一个“Project.def“文件,其内容为:
           LIBRARY dll
           EXPORTS 
             Function1 @1
    Function2 @2