你的DLL的定义是否按照标准C的格式,采用如下方式就可以int WINAPI MyFunction()
{
}
同时在Def文件中加入导出口就可以了。

解决方案 »

  1.   

    用如下格式:
    再实现文件中
    int __stdcall func(...)
    {
    ...
    }
    再DEF文件中EXPORTS
        ; Explicit exports can go here
        func @1
    即可 
     
      

  2.   

    注意头文件中的定义:
    下面是一般的公用头文件的处理方法(既可用于生成DLL的项目,一可以用于使用DLL的项目):
       #ifdef __IN_DLL_PROJECT__  //是在生成DLL的项目中,在你的DLL的文件中申明这个宏
            #define FAFUNC _declspec(dllexport) 
       #else
            #define FAFUNC _declspec(dllimport) 
       #endif   FAFUNC BOOL YourFunc(....);
      

  3.   

    这样处理之后,你就不需要在DEF文件中处理了。
      

  4.   

    用如下格式:
    再实现文件中
    int __stdcall func(...)
    ~~~~~~~~~~~~~~~no,!,,is ,,STDAPI
    {
    ...
    }
    再DEF文件中EXPORTS
        ; Explicit exports can go here
        func @1not @1,,  is:    func
    ok!
    即可 
      

  5.   

    对了,说明一下,我的那些改的是要用在别的语言环境下,要是在VC中用,就不用了,
    VC的__strcall不好用,它原意是和pascal一样,但不好使,
      

  6.   

    我是先写了一个lib,在dll的输出函数中用到了lib中的函数和类,连接时就报错了,输出函数没有错误!
      

  7.   

    有点大:
    比如说我在AAA.LIB中有类PACKAGE,其中有addpakcage(char*),这样的方法,我在dll的输出函数中包含了package.h,用到了package类以及他的成员函数,但系统就是报连接错误(lib的),,忘了,其实我是在c++builder中写组件,不过这也是dll呀!
      

  8.   

    PackAge定义在Dll中?
    PackAge有输出么?注意是累的输出.
      

  9.   

    class package是定义在lib中的,dll的输出函数用到了,lib中不用输出说明的(extern)
      

  10.   

    没有问题,只要不是dll的输出函数就一点问题也没有,一旦设置为输出函数马上报错!