c++中long*在C#中用什么类型1 调用c++的dll时需要转换类型! 最好还给解释下web窗体下怎么用unsafe代码! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以使用IntPtr类型unsafe代码,最好还是别用哈 long*这个是C++的指针,声明一个long类型的指针。如果要用到非安全代码给你个例子using System;class UnsafeTest{ // Unsafe method: takes pointer to int: unsafe static void SquarePtrParam(int* p) { *p *= *p; } unsafe static void Main() { int i = 5; // Unsafe method: uses address-of operator (&): SquarePtrParam(&i); Console.WriteLine(i); }} 如果把上面代码拉到我的页面的时候就提示:不安全代码只会在使用/unsafe编译的情况下出现! 这个求解决! 是web窗体! 再就是调用dll是提示intptr 与 ref int 类型不符! 好像只能应ref int 有没详细的关于ref int方面的资料给看看 - -! 谢谢 了! “调用c++的dll时需要转换类型! ”,既然你是调用C++的动态库,主要是平台调用参数封送的事情:C++:void test(long* num);C#:void test(ref int num);注意:C++中的long是4个字节,而C#的是8个字节。所以对应的是int 知道了是ref int 的使用......可使用怎么使用 - -!有资料吗? [DllImport("KERNEL32.DLL", CharSet = CharSet.Auto, EntryPoint = "GetSystemTimeAdjustment")]extern static int GetSystemTimeAdjustment(ref long adjustment, ref long clockInterval, ref bool adjustmentDisabled); //单位是100ns 楼主,真是无语!估计你刚刚入门net啊。不就是多了一个ref关键字吗?你查查MSDN就知道了:int a=3;test(ref a); public static extern int OperateUser(string DeviceIP, int CommandID, ref int pData, int sizepData);这个pData是一个结构体指针 - -!装的是一个结构体表的数据 我不会用 ! 能给我举个简单的例子吗? 超链接调用后台函数 IIS开久了DATASET里面的主键全部错乱了..... 求数据库建模软件Erwin 4.13 请高手帮修改一个嗅探器的程序,在线等。 Thread的一个简单问题,有答案马上结帖 用sql的导入|导出能不能把存储过程也一起导入|导出啊! CSDN的管理员:你说这样的问题你叫我怎样去结贴?? 有连接ACCESS的像SqlHelper.cs这样的类吗? winfrom窗体,播放器和窗体 证书的问题 C# winform 如何将panel上动态创建的多个button重新排列 请教一个问题类型转换
这个是C++的指针,声明一个long类型的指针。
如果要用到非安全代码给你个例子using System;
class UnsafeTest
{
// Unsafe method: takes pointer to int:
unsafe static void SquarePtrParam(int* p)
{
*p *= *p;
} unsafe static void Main()
{
int i = 5;
// Unsafe method: uses address-of operator (&):
SquarePtrParam(&i);
Console.WriteLine(i);
}
}
C++:
void test(long* num);C#:
void test(ref int num);注意:C++中的long是4个字节,而C#的是8个字节。
所以对应的是int
extern static int GetSystemTimeAdjustment(ref long adjustment, ref long clockInterval, ref bool adjustmentDisabled); //单位是100ns
楼主,真是无语!估计你刚刚入门net啊。不就是多了一个ref关键字吗?你查查MSDN就知道了:int a=3;
test(ref a);