![]() |
1
2
IIRC,你需要用一个调用约定来修饰代理签名。不幸的是,这只能通过IL或使用Reflection.Emit生成存根来完成。
|
![]() |
2
8
我知道这个问题已经存在一年了,但是比动态构建类型更简单的方法是使用
从 MSDN |
![]() |
3
-1
有两件事需要注意:C#位和DLL之间的调用约定,以及char*数据如何通过这个接口进行封送。如果你弄错了其中任何一个,那么你就会收到一堆腐败投诉。在定义接口时,如果可以将数据块的大小限制为某个固定值(即设置最大字符串长度),那么就容易多了。 这是静态版本,其中DLL名称是固定的,字符串作为byte[]处理,大小限制为2Kbyte,您可以通过以下公式计算出动态版本:
如果要保留字符类型,可能还需要指定正在使用的字符集,如上所述。 如果你的char数据是作为参数进入C++代码或者C++代码通过它返回托管的世界,那么你就不用说你在做什么。阅读C#关键字ref和out,作为避免char*类型和不安全修饰符的方法。 用谷歌搜索一下,你应该能找到答案。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |