У меня есть неуправляемая DLL, которая содержит функцию для чтения данных из файла.Я написал оболочку CLI для этого.
Чтобы проверить, работает ли он, я написал простую CLI-программу, вызывающую класс-оболочку и метод чтения данных.Он работал нормально.
Я использовал эту DLL в программе AC #, но данные не читаются должным образом.Он читает, но данные считываются неверно.
Функция 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();
}
Когда я импортирую DLL CLI в проект C # и получаю доступ к коду, как указано выше, к даннымв не читается правильно.
STRUCT имеет int как члены, и он читается правильно. STRUCT1 имеет int, double и struct указатели как члены, которые не читаются должным образом.Что может быть не так?