请教C++DLL中函数用C#封装问题

问题描述

C++函数:FindGetVodUrl(LONGlFindHandle,constchar*szFileName,char*szUrlBuf,DWORD*pdwBufSize)用C#进行封装时(DllImport),各参数类型对应C#中的哪些类型?

解决方案

解决方案二:
C#C++intLONGstringconstchar*stringchar*uint32DWORD其中char*根据你是否需要修改值,也可以使用StringBuilder具体见MSDN连接http://msdn.microsoft.com/zh-cn/library/ac7ay120(v=vs.80).aspx

时间: 2024-10-26 00:57:50

请教C++DLL中函数用C#封装问题的相关文章

c#调用c++写的dll中函数,类型对应的问题

问题描述 函数原型DWORDGETXXSTATUS(DWORD*mstatus)参数mstatus:[in/out]*mstatus表示状态值这里的DWORD*与C#中的什么类型对应呢? 解决方案 解决方案二:uintGetXXSTATUS([In,Out]refuintmstatus)解决方案三:dword实质上就是unsignedlong相当于C#的 uint解决方案四:引用1楼shingoscar的回复: uintGetXXSTATUS([In,Out]refuintmstatus) DW

求助:C#动态调用DLL的,为什么getProcAddress无法获得NATIVE DLL中的导出函数?

问题描述 ①自己用C++写了个DLL在其中声明了一个导出函数extern"C"__declspec(dllexport)LRESULTCALLBACKhookProc(intnCode,WPARAMwParam,LPARAMlParam){//实现内容忽略return1;} 生成DLL后,因为是C++编译器编译的,会改变方法名,于是我用了VIEWDLL查看了导出函数名称叫_hookProc@12②调用DLL代码[DllImport("kernel32.dll",Ch

C# 利用P/Invoke调用PMAC的Pcomm32.dll, 函数字符串返回值为空

问题描述 大家帮我看看,这是利用P/Invoke委托连接PComm32.dll动态连接库,向一个PMAC设备发送指令的语句,向下发送能够成功,但返回值应该在buf值,但就是没有怎么回事?字符串buf为空,急等调试,谢谢各位高手,在线等PMAC的PComm32.dll中函数原形为:longPMACGETRESPONSEA(DWORDdwDevice,PCHARresponse,UINTmaxchar,PCHARcommand)C#代码如下namespaceaaa{publicdelegateInt

dll中的静态变量,试用了你就会想哭

问题描述 把下面的类编译成dllpublicclassClass1{publicstaticintgg;staticClass1(){gg++;System.Web.HttpContext.Current.Response.Write(DateTime.Now)}}在页面中调用上面的静态变量protectedvoidPage_Load(objectsender,EventArgse){Response.Write(Class1.gg);}想哭了吧,每次页面刷新,Class1类的静态构造函数都被调

解决ASP中Connection对像封装dll问题

     asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径,本文详细介绍关于解决ASP中Connection对像封装dll问题的文章专题. 中午,突然灵感一发,"为什么不尝试用加密数据库?",通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库! 于是,开始了一步步既痛苦又刺激的旅程.vb三

ASP中Connection对像封装dll解决方案

connection|封装|解决 asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径... 中午,突然灵感一发,"为什么不尝试用加密数据库?",通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库! 于是,开始了一步步既痛苦又刺激的旅程.vb三四年前用过,而且菜得不再菜,为了找思路,就上网搜,

Delphi中在DLL中封装的VCL窗体Tab键响应的问题

在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息.基本顺序是这样的: 1. 主窗体用Hook技术捕获Tab按键并向活动子窗体发送一个Tab键按下的消息 2. 子窗体手动定义一个Tab键被按下的处理(需要用到FormKeyDown事件). 3. 移动到下一个焦点的WinAPI函数:Perform(WM_NEXTDLGCTL,0,0); 4.移动到上一个焦点的函数:Perform(WM_NEXTDLGCT

C#调用非托管C++DLL中的函数接口

问题描述 C#调用非托管C++DLL中的函数接口(有生成的DLL文件和Lib文件)怎么引用?引用项添加不了 解决方案 解决方案二:使用DllImport,添加引用只能针对.NET控件或COM组件.解决方案三:DllImport具体搜p/Invokehttp://www.cnblogs.com/xuqiang/archive/2010/12/21/1953355.html解决方案四:C++DLL中的函数中还调用了openCV的函数,能说一下怎么整么?解决方案五:引用3楼qq_28744297的回复

将MFC Grid control封装为DLL的做法及其在DLL中的使用方法

MFCGrid control是一款非常优秀的网格控件,支持非常丰富的界面元素,如下图:   因而在数据库程序及报表程序应用较为广泛,其源码可以在下面下载到: MFC Grid control2.27源码下载        MFC Gridcontrol的作者并没有将其封装为DLL,因为在程序的多个模块复用这个控件比较麻烦(需要在多个工程中加入其源码),因此最好将其封装为一个DLL.今天有同事反映在DLL的对话框中无法使用封装好的MFC Grid control,于是上网查了下资料,晚上摸索了一