0
我有一个非托管dll,其中包含从文件中读取数据的函数。我为它写了一个CLI包装器。通过C#调用数据读取方法无法正常工作
为了测试它是否工作,我编写了一个简单的CLI程序,调用wrapper类和数据读取方法。它运行良好。
我在c#程序中使用该dll,但数据未正确读取。它读取但读取的数据不正确。
CLI功能:
void FileReader::ReadFile()
{
int ret;
STRUCT head;
STRUCT1 *sqar;
memset ((void *)&head, 0, sizeof (STRUCT));
sqar = (STRUCT1 *)NULL;
ret = Read_func("somefile.someformat", &head, &sqar);
}
CLI EXE:
int main(array<System::String ^> ^args)
{
FileReader reader;
reader.ReadFile();
Console::WriteLine(L"Hello World");
return 0;
}
这工作得很好。当我调试时,代码流经并正确读取数据。
C#代码:
{
FileReader filereader= new FileReader();
filereader.ReadFile();
}
当我进口的C#项目的CLI DLL和访问代码作为无法正确读取上面的数据。
STRUCT具有int作为成员并且正确读取.STRUCT1具有int,double和结构指针作为不正确读取的成员。什么可能是错的?