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和結構指針作爲不正確讀取的成員。什麼可能是錯的?