C# 与VC之间通过DLL传递数据问题
我做了一个VC程序跟一个C#程序,它们之间的数据交换是通过动态库的,调用声明的都没有问题,只是传递的时候会出现丢值的现象。我用的函数参数是一个结果体,结构体里面有五个参数,传值期间只能成功传递三个过个,2个int型,三个long型。两种参数都能传递过去,只是long型会出现数据丢失的情况,我尝试着改成int型的,但是还是依旧如此。我想请教下,有哪些情况下会出现动态库传数据会出现我这种情况呢。望指教!!!
[解决办法]
如何通过 DLL 传数据的? 使用共享的数据段吗?
[解决办法]
数据类型的问题,long在VC和C#中的大小并不是一样的。最好用COM接口,或二进制块,或将参数组合为字符串。
[解决办法]
C#long是64位的 C++的long不一定是64位
[解决办法]
最直接的查错办法是单步对应汇编指令。
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!