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)

DWORD*能用byte[]接收吗
解决方案五:
引用3楼tiana0的回复:

Quote: 引用1楼shingoscar的回复:
uintGetXXSTATUS([In,Out]refuintmstatus)

DWORD*能用byte[]接收吗

理论上也是可以的,有些前提1你必须知道mstatus实际的长度2在c#里先定义好byte[],且长度不能小于mstatus的长度
解决方案六:
[System.Runtime.InteropServices.DllImportAttribute("<Unknown>",EntryPoint="GETXXSTATUS")]publicstaticexternuintGETXXSTATUS(refuintmstatus);如果经常用C#调用C++的动态库的话建议下载CLRInsideOut托管代码与非托管转换
解决方案七:
byte或者是ushort
解决方案八:
引用3楼tiana0的回复:

Quote: 引用1楼shingoscar的回复:
uintGetXXSTATUS([In,Out]refuintmstatus)

DWORD*能用byte[]接收吗

那你把函数签名换成byte[]类型然后传入byte[4]的一个数组就行了然后BitConverter.ToInt32(byBuffer,0);取出值

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

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

C#中调用C++写的dll,参数类型为char*[]怎么处理啊

问题描述 C#中调用C++写的dll的时候,传入参数类型为char*path[],即一个char*的数组,请问在C#中这个类型应该怎么写,之前我写过char*类型的,对应的C#中的类型是StringBuilder,那么如果是char*[]类型的话,可以用StringBuilder吗我用了但是不对,求高手指点啊~~~ 解决方案 解决方案二:不需要针对类型做太多要求,指针其实就是C#中的引用类型,他需要你给他一个存储数组的数组的地址,你完全可以用一个list<>来存储需要的数组,list<s

C++调用C++写的DLL回调函数,只能传递第一个参数

问题描述 好不容易能够实现回调了,结果验证数据的时候发现,最后执行到DoWhile_Get_StatusChange的时候,本来是两个int参数的,只有第一个的值传递了过来,第二个参数的值一直是0.不知道是啥原因了C++的DLL里面是这样的代码aaaa_Lib.cpp//-------------------------------------------------------------------------------//声明typedefbool(CALLBACK*Connection

怎样在C#中调用Delphi6写的DLL

我在编写一个系统时遇到了一个问题,无法在C#中调用Delphi6写的DLL,只因为DLL的参数是string类型的.然后在网上找相关的资料,还是没有结果.经过我的再三琢磨,现在已经解决,特写此文章与大家分享我的喜愉!Dellphi DLL文件:///////////////////////////////////////////////////////////////////library mydll; uses SysUtils, Classes; {$R *.res}function Out

在Delphi中调用.Net编写的DLL中的函数

最近因公司群发邮件程式需要给注册一段时间没有激活的用户发激活邮件,邮件中有注册密码 需要还原发给用户 但由于密码加密是用C# 中的TripleDES完成,手头上又没有现成Delphi的实现.时间紧急,现翻译是来不及了,于是经过查资料反复实施 终于成功实现在Delphi中调用 C# 封装的DLL中的方法(Function)和过程(Procedure)现把实施步骤写下,以供有需要的XDJM分享: 1.建立:DotNetFunc.cs 封装要使用的Function.Procedure. 2.生成密钥文

c++-C#调用C++动态库DLL中的函数

问题描述 C#调用C++动态库DLL中的函数 C#调用C++动态库DLL中的函数,此函数参数中有bool(小写)类型的参数.c#该如何进行转换 解决方案 C#调用C++动态库dllC#调用C++动态库(dll)C#动态调用C++编写的DLL函数 解决方案二: bool类型的true 或false一般对应1和0.有的语言没有bool类型的.传递参数时可用整型替代. 解决方案三: public static extern int RD_CloseCom(bool IsOpen); 解决方案四: 在C

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的回复

关于asp.net调用pb写的dll问题

问题描述 关于asp.net调用pb写的dll问题 现在asp.net调用pb写的dll我将dll放到bin目录然后添加引用,初始化的时候查看有哪些接口的时候报错出现死循环这里出现函数求值超时,谁遇到过这种情况求大神们指导. 解决方案 Asp.NET调用C++写的dllAsp.NET调用C++写的dllasp.net调用C++的dll 解决方案二: com对象本身是否有问题,先用activex control test container测试. 解决方案三: 如果winform可以调用的话,估计

封装dll-QT调用C#写的DLL问题,请大家指教一下

问题描述 QT调用C#写的DLL问题,请大家指教一下 我这里有个DLL文件,是用C#写的,托管式的,在QT 中应该怎么调用它?在网上找了很久还是不是很清楚 解决方案 C#写的dll可以包装成activex com dll,然后可以通过别的语言调用.还有一个更简单的办法,就是C#这里做成web service,通过进程外网络调用的方式用qt调用.

javascript-请问asp.net后台怎么调用前台写好的JavaScript函数

问题描述 请问asp.net后台怎么调用前台写好的JavaScript函数 前台 <script type="text/javascript"> $(".btn").click(function(){ is_hide(); }) function is_hide(){ $(".alert").animate({"top":"-40%"}, 300) } function is_show(){ $