社区
C#
帖子详情
请教如何在C#下实现类似VC中memcpy功能的函数?
danelmo
2008-07-12 10:27:47
请教各位高手:如何在C#下实现具备VC中memecpy(void* pSrc,void* pDst,int length)这样功能的函数?如果要调用VC中memecpy函数,C#中对应指针的参数该如何取?如何传递参数?
...全文
492
9
打赏
收藏
请教如何在C#下实现类似VC中memcpy功能的函数?
请教各位高手:如何在C#下实现具备VC中memecpy(void* pSrc,void* pDst,int length)这样功能的函数?如果要调用VC中memecpy函数,C#中对应指针的参数该如何取?如何传递参数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
daxuewuli417
2012-10-12
打赏
举报
回复
System.Buffer.BlockCopy()
danelmo
2008-08-18
打赏
举报
回复
[Quote=引用 6 楼 wsxqaz 的回复:]
有我以前做过的,就是忘了在什么地方了
[/Quote]
能否帮我查找下,应当如何解决这个问题,我被这个问题困扰很久了,谢谢了!
danelmo
2008-08-18
打赏
举报
回复
[Quote=引用 5 楼 akirya 的回复:]
引用 4 楼 danelmo 的回复:
这个可以保证结构体成员字段的对齐方式是完全一致的,就是出现在反复对同一种数据类型进行转换的时候,95%以上是不会有错的,只有不到5%的数据会出现这种错误,但这些都是实时传递的重要数据,必须保证一个都不能错,所以很是恼火。
你先保证结构体没问题了不就行了吗?你看看API那些结构体,都没问题.
[/Quote]
结构体肯定没有问题,因为同一个byte数组如果用StructToPtr取一个结构或类的指针,调用Copy函数出错,而如果一个变量一个变量的转换却没有任何问题。
wsxqaz
2008-07-27
打赏
举报
回复
有我以前做过的,就是忘了在什么地方了
珍惜生命远离CPP
2008-07-27
打赏
举报
回复
[Quote=引用 4 楼 danelmo 的回复:]
这个可以保证结构体成员字段的对齐方式是完全一致的,就是出现在反复对同一种数据类型进行转换的时候,95%以上是不会有错的,只有不到5%的数据会出现这种错误,但这些都是实时传递的重要数据,必须保证一个都不能错,所以很是恼火。
[/Quote]
你先保证结构体没问题了不就行了吗?你看看API那些结构体,都没问题.
danelmo
2008-07-27
打赏
举报
回复
这个可以保证结构体成员字段的对齐方式是完全一致的,就是出现在反复对同一种数据类型进行转换的时候,95%以上是不会有错的,只有不到5%的数据会出现这种错误,但这些都是实时传递的重要数据,必须保证一个都不能错,所以很是恼火。
bindsang
2008-07-20
打赏
举报
回复
看看封送调用的两边的结构体成员字段的对齐方式是不是一致,如果不一致会使结构体的大小不一致,
danelmo
2008-07-20
打赏
举报
回复
非常感谢!我用Marshal类的Copy函数进行拷贝,当适用StructToPtr取一个结构或类的指针的时候,在不断调用Copy函数的时候,常有出现“传递给缓冲的数据区太小”这样的错误,却找不到是因为什么导致这样的错误,该如何解决这种错误?是不是由于C#自己管理内存的关系?
gomoku
2008-07-12
打赏
举报
回复
1、最好用System.Runtime.Interopservices.Marshal类来操作内存,比如WriteInteger, PtrToStingAuto, StingToPtrAuto等等。
2、memcpy是C运行期函数,没有对应的函数导出。
3、如果一定要用(不好的方法),可以用Kernel32.dll中的RtlCopyMemory。void*将对应C#中的IntPtr。
VS
中
C++编程时提示
memcpy
()不明确的解决办法
在
函数
调用的时候使用双冒号指定调用全局
memcpy
t()即可; ::
memcpy
()
c 语言
中
虚方法有什么作用是什么,虚
函数
的作用?
}用途:
实现
多态性,通过指向派生类的基类指针,访问派生类
中
同名覆盖成员
函数
虚
函数
必须是基类的非静态成员
函数
,其访问权限可以是private或protected或public,在基类的类定义
中
定义虚
函数
的一般形式:class基类名...
C#
和
VC
++调用dll步骤,接口指针、字符串等类型对应关系
用
VC
++基于MFC动态链接库(dll)开发绘图组件,那么
C#
和
VC
++分别怎么使用dll?...2.
实现
CSLine画线、CSEllipse画圆等类,
实现
画布CCanvasWnd等所有绘图
功能
; 3. 在FYDC.h和FYDC.cpp添加绘图类库头文件,如Canvas
C#
基础知识定义回调
函数
对应的委托
定义回调
函数
对应的委托 //C++ 代码: //myDll.h typedef void (*RecivecallBack)(LPVOID pVoid, char *mydata,int mLen); LPVOID m_void; RecivecallBack m_function; //回调
函数
//注册回调
函数
extern "C...
内存拷贝(SendMessage)在
C#
、C++、QT之间的互相通讯
实现
内存拷贝(SendMessage)在
C#
、C++、QT之间的互相通讯
实现
C#
110,018
社区成员
642,615
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章