c#中如何访问调用C++写的DLL,有库文件.
谢谢..急/
谢谢..急/
解决方案 »
- 提问, WeifenLuo.WinFormsUI.Docking.dll 的问题
- webbrowser如何使链接在新winform窗体中打开
- 在 textbox 里如何屏蔽 shift+上下左右
- c#中的bool函数个人感觉用处不大.(初学c#)
- 初学C#,问几个问题哦!
- 如何判断鼠标指针为于控件的右小角?
- 关于Infragistics WinGrid控件行滚动条的问题
- C# 改写VC代码
- asp 这段代码 在gv中一直得不到oracle的表中数据
- 我也在网上找到了一个《C#完全手册》,PDF格式的,谁要的进来下载啦!@
- 关于treeview的node的tag赋值的问题
- 急求高手解答,100分的问题
1、对于标准的api函数
using System.Runtime.InteropServices;[DllImport("XXX.DLL",EntryPoint="GetApiFunction",SetLastError=true)]
public static extern int GetApiFunction(
string strParaA,
StringBuilder strParaB,
int intParaC,
out int intParaD,
bool blnParaE);C++数据类型和C#的部分对应关系:C++ 输入输出 C#
==================================
char chr[255] O StringBuilder
KCA_DIR I int
LPCSTR I string
int I int
LPSTR O StringBuilder
int* O out int
DWORD I int
DWORD* O out int
BOOL I bool
Rc_DBMgr I IntPtr
long* O out long2、对于非标准的api的调用:
A:引入XXX.DLL到项目;(如果Get_Name在:XXXNameSpace.YYYClass.Get_Name())
B:
XXXNameSpace.YYYClass clsYYY = new XXXNameSpace.YYYClass();
clsYYY.Get_Name();3、如果1和2都不行的话,那就需要为该c++的dll增加c#调用的入口了。
但我引用的是一个C++写的DLL文件
再using基本没有什么问题啊。
但我引用的是一个C++写的DLL文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++是的,C#不能直接引入C++的DLL,必须通过以上我提供的方法才可以的哟。
3、如果1和2都不行的话,那就需要为该c++的dll增加c#调用的入口了。特别是这个,因为不是标准API,但是你提供的第2种办法更是让我看的云里雾里..能不能,最好是能举个实际例子?
1、
通过命令行的方式,注册该C++的DLL
regsvr32 DLL的完整路径2、
在C#的项目中,引入该C++的DLL
public static void 函数名(para1 , para2)
唉,连注册都不行,说是没有DLLRegisterServer的输入点..怎么办?..555
jacklin_036() ( )
这样引用不需要写完整路径么?
如果还调用了别的dll的话,请把它们放到一个目录下后再注册。2、试试第一种方法吧,如果还不行的话,那就只好修改C++的DLL,写一个C#调用的入口了。
在VC里怎么把声明改为C#的...-_-||