Visual Studio 2010生成dll:打开VS2010,新建-项目-Windows-类库(),用于创建C#类库的项目(dll)。VC 2010dll

解决方案 »

  1.   

    估计比较麻烦 dll里面用到的依赖的库版本都不一样 除非把这些库都拷过去而且还不能和vc6的冲突...
      

  2.   

    不同版本之间不太好兼容,不用dll,用exe,走进程通信会好点
      

  3.   

    C++ 的标准输出(标准接口,参数是char*, int 这种C# 有对应转换的类型)DLL  
    C# 能直接调用的
    如果不标准 用CLR再封一层照样可以用
      

  4.   

    c#编的DLL不能被VC调用,如果用VC2010编的DLL,也得用VC6支持的函数(有些函数VC6不支持)
      

  5.   

    把c#的dll做成com,然后按com方式调用
      

  6.   

    没有验证,但我感觉不会有问题,DLL通过def文件生成dll调用接口后,对于调用者而言,都是一样的,只是这个dll要依赖于vs2010的dll而已,但那对vc6程序,是一无所知的
      

  7.   


    打开VS2010,新建--项目 -- Visual C++ -- Win32 -- Win32项目 -- 应用程序类型 dll 
    //1 头文件 EmailDll.h
    #include<string>
    using namespace std;extern "C" _declspec(dllexport) int __stdcall ESendData( char *cData );//2 cpp文件 EmailDll.cpp/*extern "C" _declspec(dllexport)*/ int __stdcall ESendData( char *cData,char *cFilepath )
    {
    int iReturn = SendData( sData ); return iReturn;
    }
      

  8.   

    打开VS2010,新建--项目 -- Visual C++ -- Win32 -- Win32项目 -- 应用程序类型 dll //1 头文件 EmailDll.h
    #include<string>
    using namespace std;extern "C" _declspec(dllexport) int __stdcall ESendData( char *cData );//2 cpp文件 EmailDll.cpp
    /*extern "C" _declspec(dllexport)*/ int __stdcall ESendData( char *cData )
    {
    int iReturn = SendData( cData ); return iReturn;
    }
      

  9.   


    VC6.0++ Test.exe 调用vs2010编译的DLL
    typedef int ( __stdcall *pSendData)( char *cData );
    pSendData SendData = NULL; const char* dllName = "F:\\EmailDll.dll";  
    HMODULE g_hDll = LoadLibrary( dllName ); //g_hDll值为空
    Initialize = (pInitialize)GetProcAddress(g_hDll, "EInitialize"); //值为空, 没有获得dll里面的函数地址
    ......