如有一个函数:
int Add(int a,int b)
希望该函数能够通过VC封装进动态库Core.dll,且该动态库能够在C#,Delphi和VB中均可调用。
是不是只有建立Win32动态库才可以在其他开发环境中调用呢(如Delphi等)?
希望各位大侠能提供
VC中开发Core.dll动态库的源码
C#中的调用源码
Delphi中的调用源码
VB中的调用源码
谢谢!

解决方案 »

  1.   

    写出支持Idispatch接口的COM对象是最简单的方法,看看ATL 相关的设计书籍,开头会需要点时间
      

  2.   

    TO:arong1234 
    请赐教,很是急用,谢谢!
      

  3.   

    看我的blog
    http://blog.csdn.net/akirya/archive/2008/02/14/2093031.aspx
      

  4.   

    这样声明函数extern "C" __declspec(dllexport) int __stdcall Add(int x,int y)
    {
    }再用def文件限定函数名字即可.
      

  5.   

    VC:
    在def中
    LIBRARY "Core"
    EXPORTS
    Add
    在cpp中
    __declspec(dllexport) int __stdcall Add(int a, int b)
    {
    return a + b;
    }C#:
    [DllImport("Core.dll", CharSet=CharSet.Auto)]
    public static extern int Add(int a, int b);Delphi:
    function Add(a:Integer; b:Integer):Integer; stdcall; external 'Core.dll'; VB:
    Declare Auto Function Add Lib "Core.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
      

  6.   

    project->new->MFC AppWizard(dll)
    创建test工程
    创建完后,编辑文件
    在CTestApp theApp;后编辑extern "C" __declspec(dllexport) int Add(int a, int b)
    {
    return a+b;
    }编译就行了Delphi中的声明:function Add(a: integer;b: integer): int; stdcall;far;external 'test2.dll' name 'Add';声明后直接调用
      

  7.   

    看一下杨老师的“COM组件设计与应用”一切的一切迎刃而解
      

  8.   

    在每个需导出的函数前加上:extern   "C"   __declspec(dllexport)
    即可