用C++写了一个类用于客户端和服务器端之间数据的发送和接收,用C#怎么调用类里的函数,我是新手,学C#才几天,麻烦说详细点,谢谢。

解决方案 »

  1.   

    不是几句话能说清的...自己去看MSDN...使用非托管 DLL 函数
      

  2.   

    在C#里面引用C++里面生成的dll文件
      

  3.   

    是的必须使用它的dll,就像C,C++ 写的kernel32.dll,user32.dll 一样
      

  4.   

    在C#里面引用加载C++里面生成的动态链接库dll文件
       如:【DllImport (kernel32.dll)】 
      

  5.   

    [DllImport("Kernel32")]
    public static extern int GetProcAddress(int handle, String funcname); //导入
    public static Delegate GetFunctionAddress(int dllModule, string functionName, Type t)
            {
                int address = GetProcAddress(dllModule, functionName); //引用
                if (address == 0)
                    return null;
                else
                    return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
            }注意类型对应,包括导入的时候必须和DLL里面的函数名,参数类型返回值保持一致
      

  6.   

    当然你可以引用,但是有的时候是不能引用某些DLL的,只要把dll和cs文件放在一个目录下就可以,这也是为什么很多软件安装后,在exe文件目录里有DLL文件
      

  7.   

    这个讲究比较多,你搜下怎么样调用非托管代码。。
    dll文件该放哪,参数类型对应等等