c++中long*在C#中用什么类型1

qq770830977 2011-09-09 01:24:06
调用c++的dll时需要转换类型! 最好还给解释下web窗体下怎么用unsafe代码!
...全文
2755 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq770830977 2011-09-09
  • 打赏
  • 举报
回复
public static extern int OperateUser(string DeviceIP, int CommandID, ref int pData, int sizepData);

这个pData是一个结构体指针 - -!装的是一个结构体表的数据 我不会用 ! 能给我举个简单的例子吗?
sdl2005lyx 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qq770830977 的回复:]

知道了是ref int 的使用......可使用怎么使用 - -!有资料吗?
[/Quote]

楼主,真是无语!估计你刚刚入门net啊。不就是多了一个ref关键字吗?你查查MSDN就知道了:

int a=3;
test(ref a);
蔡袅 2011-09-09
  • 打赏
  • 举报
回复
[DllImport("KERNEL32.DLL", CharSet = CharSet.Auto, EntryPoint = "GetSystemTimeAdjustment")]
extern static int GetSystemTimeAdjustment(ref long adjustment, ref long clockInterval, ref bool adjustmentDisabled); //单位是100ns
qq770830977 2011-09-09
  • 打赏
  • 举报
回复
知道了是ref int 的使用......可使用怎么使用 - -!有资料吗?
sdl2005lyx 2011-09-09
  • 打赏
  • 举报
回复
“调用c++的dll时需要转换类型! ”,既然你是调用C++的动态库,主要是平台调用参数封送的事情:
C++:
void test(long* num);

C#:
void test(ref int num);

注意:C++中的long是4个字节,而C#的是8个字节。
所以对应的是int
qq770830977 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ruanwei1987 的回复:]

long*
这个是C++的指针,声明一个long类型的指针。
如果要用到非安全代码给你个例子

C# code
using System;
class UnsafeTest
{
// Unsafe method: takes pointer to int:
unsafe static void SquarePtrParam(int* p)
{
*p *= ……
[/Quote] 如果把上面代码拉到我的页面的时候就提示:不安全代码只会在使用/unsafe编译的情况下出现! 这个求解决! 是web窗体! 再就是调用dll是提示intptr 与 ref int 类型不符! 好像只能应ref int 有没详细的关于ref int方面的资料给看看 - -! 谢谢 了!
founderfang 2011-09-09
  • 打赏
  • 举报
回复
IntPtr 或 ref long
bdmh 2011-09-09
  • 打赏
  • 举报
回复
ref long
ruanwei1987 2011-09-09
  • 打赏
  • 举报
回复
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);
}
}
Just4life 2011-09-09
  • 打赏
  • 举报
回复
可以使用IntPtr类型

unsafe代码,最好还是别用哈

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧