C#的DLL调用中void**如何处理?

问题描述

大家好,我现在想把如下C++的函数移植到C#下使用,函数原型如下:HANDLERtOpenSharedMemory(DWORDDesiredAccess,BOOLbInheritHandle,LPCTSTRlpName,VOID**location);我查到了是使用DllImport来调用C++中的DLL,但主要对函数的最后一个形参“VOID**location”比较疑惑,到底该怎么处理?之前我在网上找了好久也没有找到答案,只找到了char**、int**等的处理办法,有劳各位,非常感谢!

解决方案

解决方案二:
指针都可以是System.IntPtr
解决方案三:
只想指针的指针,难道要用refIntPtr?
解决方案四:
还是那句话,C#是支持指针的,直接用指针写,unsafe代码写void**即可,其他的任何转换方式你都得查,只有用指针写是最傻瓜化的方式
解决方案五:
好的,谢谢大家了。我就按照3l说的,用unsafe吧。
解决方案六:
用二维数组接收
解决方案七:
这明显是打开共享内存,其中location是个输出参数,返回所打开的共享内存的地址,直接IntPtroutLoc=IntPtr.Zero;RtOpenSharedMemory(xxx,xxx,xxx,refoutLoc);

时间: 2024-09-22 16:25:20

C#的DLL调用中void**如何处理?的相关文章

DLL调用中的参数类型问题

问题描述 动态链接库中的函数:typedefint(pAftsApiExt)(inta,char*b,CStringc,char*d,char*f,char*m);在C#中如何声明?[DllImport("A.dll",EntryPoint="_AftsApiExt",CharSet=CharSet.Ansi)]publicstaticexternint_AftsApiExt(inta,stringb,Stringc,stringd,stringf,stringm)

com-C++ 如何调用Delphi的dll文件中的COM方法

问题描述 C++ 如何调用Delphi的dll文件中的COM方法 请问 C++ 如何 调用 Delphi 的dll文件中的COM方法 解决方案 只要是COM就遵守COM的规范,Delphi写出来的COM和其他语言写出来的COM用法是一样的

matlab和c#混编问题调用中无法实例化

问题描述 matlab和c#混编问题调用中无法实例化 我的版本是win8 64位下的matlab2012b和vs2012 由于matlab不支持vs2012编译我下了个文件就可以了. 现在的问题是编译出来的.dll加载后无法实例化. 求下解决办法,或者有成功编译起了的大神,给我下配置环境 解决方案 将.net程序限制以32位方式运行 1.打开项目的"属性"页. 2.单击"生成"属性页. 3.修改"目标平台"属性为X86

Java编程中void方法的学习教程_java

void 关键字本节说明如何声明和调用一个void方法. 下面的例子声明了一个名为printGrade的方法,并且调用它来打印给定的分数. 示例 public class TestVoidMethod { public static void main(String[] args) { printGrade(78.5); } public static void printGrade(double score) { if (score >= 90.0) { System.out.println(

详解JavaScript中void语句的使用

  这篇文章主要介绍了详解JavaScript中void语句的使用,是JS入门学习中的基础知识,需要的朋友可以参考下 void是在JavaScript中的一个重要的关键字可被用作其单操作数之前出现一元运算符,其可以是任何类型. 此运算符指定不需要返回值,进行计算的表达式.它的语法可能是下列之一: ? 1 2 3 4 5 <head> <script type="text/javascript"> <!-- void func() javascript:vo

非ie内核 64位 ocx-ocx控件调用中遇到的2个问题:

问题描述 ocx控件调用中遇到的2个问题: 1, vc2010编译的64位的ocx控件,但是该控件的依赖库是32位的,能正常运行吗? 非ie内核的浏览器,如果调用ocx控件?网上有很多,但是没找到靠谱的希望大侠给指明一下,谢谢! 解决方案 vc2010编译的64位的ocx控件,但是该控件的依赖库是32位的,能正常运行吗? -〉你的依赖库指得是static library么?如果指的是static library, 应该编译/链接就有问题才对. 如果指得是另外一个32bit的OCX控件,那可能是能

mfc-MFC、dll库中的对话框,无法用Tab键控件之间切换

问题描述 MFC.dll库中的对话框,无法用Tab键控件之间切换 在控件风格中已经加了tab相关的风格,控件属性Tabstop也改成了true,也Ctrl+D设置了控件响应tab键的顺序,可是按tab键就是不切换,同时上下键和回车键也没用,求大神解答

在局域网AD内,有些网站可以访问,有些网站无法访问,IE左下角提示AJAX调用中...

问题描述 ajax调用中....,显示很长时间,整个系统变得十分缓慢,过了很长时间(十几.二十几分钟后),还能访问.我的电脑在局域网内,AD域环境下,XP系统,IE8浏览器有些电脑可以正常访问这些网站.网站应该没有问题.是IE的问题呢,还是网络问题?dns解析问题?请高手解答 解决方案 解决方案二:能否断点看下,是否是ajax到了后台出现什么状况了呢?解决方案三:可能是网段的问题解决方案四:怎么断点?不明白解决方案五:网段应该没有问题,其他计算机也在同网段下解决方案六:显示很慢的电脑上ping下

连接池-ERROR SqlExceptionHelper:146 - 调用中无效的参数

问题描述 ERROR SqlExceptionHelper:146 - 调用中无效的参数 10:53:26,259 ERROR UserDaoImpl:43 - org.hibernate.exception.GenericJDBCException: Could not open connection 10:53:26,268 INFO StatisticalLoggingSessionEventListener:275 - Session Metrics { 330065 nanosecon