1通常用 win32 Dynamic-Link Libraty 然后选择dll
将生成的大部分代码删掉
2可以没有的
3最好加上def文件 最好用__stdcall 和 extern"C" 修饰函数,函数参数类型必须为基本类型.

解决方案 »

  1.   

    http://blog.csdn.net/PentiumMMX/archive/2007/05/11/1605062.aspx
      

  2.   

    如果我想导出一个类的话,是不是就不能用extern "C", __stdcall 了
      

  3.   

    不能导出类,那样的dll会有问题的.class 不是二进制兼容的
      

  4.   

    可以导出类,但最好模仿COM里的接口。导出类用纯的抽象类。比如
    Class  _declspec( dllexport) classExport
    {
      virtual void _stdcall testFun( int a,int b ) =0;
    };
    这样就二进制兼容了。
      

  5.   

    全局导出函数一般如下:
    extern "C" _declspec (dllexport) void _stdcall Func1( int a,int b );
    extern "C"告诉C++编译器编译后不要改变你的的导出函数名,_stdcall约定了你的函数调用方式。
    并且在导出函数里的参数类型最好都是简单的数据类型,不要使用某种语言自己封装的特殊的数据类型,不如VC的CString,这样你的DLl就能比较好的跨编译器使用了。
      

  6.   

    1通常用 win32 Dynamic-Link Libraty 然后选择dll
    将生成的大部分代码删掉
    2可以没有的
    3最好加上def文件 最好用__stdcall 和 extern"C" 修饰函数,函数参数类型必须为基本类型.
     用WINAPI很好的