int lPort;
unsafe
{// Assign the address of number to a pointer:
// int* p= &lPort;
fixed (int* tmp = &lPort)//取得变量lPort的地址
{
IntPtr lPortPtr2 = (IntPtr)tmp;//变量lPort的地址转换为IntPtr类型
CPlayCtrlSDK.PlayM4_GetPort(lPortPtr2));//使用变量lPort的地址
}
}
编译选项勾选允许不安全代码
本文展示了一个使用C#中的不安全代码块来操作指针的例子。通过将局部变量的地址赋值给指针,并将其转换为IntPtr类型,进而调用外部库函数。此过程涉及固定局部变量的内存地址以确保在不安全代码块中不会发生垃圾回收。
1940

被折叠的 条评论
为什么被折叠?



