ntjm.net
当前位置:首页 >> C# 获取 C++指针函数 >>

C# 获取 C++指针函数

一般可以考虑平台调用(PInvoke),这种情况下其实是对一些特殊的方式进行处理而已.比如指针类型一般被封装成了IntP类型.PInvoke可以认为是在托管代码中实现非托管的一些内容,也是不同平台之间的调用,需要不同情况下的数据封送

这个函数名的指针我不想委托 因为我要用这个指针作为参数调用一个C++的函数//???上面那句话没有因果关系, 委托就是函数指针,你定义一个和函数一样的委托, 将函数放入委托,然后将委托当作参数就可以了,效果就是调用那个函数如果你仅仅是想试试C# 中的指针,那就用unsafe 关键字吧,用法去查MSDN就好了

开启unsafe模式 unsafe { char* p="dasdasdad"; 在这里面就可以用指针了展开全部

假设d12是buffdata的长度,假设实现如下:while (d12--) *(buffData + d12) = 'a';return 1;C#中只需要声明如下:[DllImport("xxx.dll")]private static extern int ReadCard(byte d12, ref byte buffData);使用如下:byte[] d = new byte[10];ReadCard((byte)d.length, ref d[0]);

CHAR* 可以先实例化一个StringBuilder然后可以传给char*类型 关于其他的请参考msdn中的c++与c#的类型转换 对应关系如下: C++ ---- C# 传入的char* ----string 传出的char* ---- StringBuilder(预分配空间) short ----short char ---- byte char[n] ---- fixed byte[n] 结构指针 ----结构指针 函数指针 ---- 委托

你这个功能,做好用c++实现,因为c#是托管代码,给不出RCVDATA RcvAddr这个函数指针来给c++调用.也就是说,你得写个c++的dll实现该功能,然后用c#加载你自己的c++ dll. 怎么调用dll方法网上有,不贴了.

先定义出对应c++类型的c#结构体 public struct user_group_t { public int id; public string name; } public struct user_group_list { public int group_array_count; public intptr group_array;//指向 user_group_t类型的指针 }泛型函数实现转换功能public

LZ试下这个:源代码用VB.NET写得,机器转化成C#的,加了很多命名空间的引用.VB.NET里只需要引用system.runtime.interopservices就可以了. using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.

pData,指针应该是数据缓冲区首地址吧?你用string data当然不行的了.

声明一个delegate,然后把相应型构的函数传进去就行了;public delegate void CallBackFunc();public void xx(){ console.writeln("call back");}private CallBackFunc func;//func=new CallBackFunc(xx);导入dll的函数后,调用:RegReLoginSuccessCallBackFunc(func);

相关文档
kcjf.net | fnhp.net | zxqt.net | zxqk.net | xyjl.net | 网站首页 | 网站地图
All rights reserved Powered by www.ntjm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com