Использование DLL, написанной на C++, в C# (указатели)
Формулировка задачи:
Всем привет! Есть DLL, написанная на C++, в ней описана такая функция:
Функция принимает первые два параметра и возвращает результат с помощью указателей в следующие пять.
time_struct - это структура следующего вида:
Я описал ее следующим образом:
Структуру вот так:
При вызове функции почему-то получаю null Другие функции, в которых нет указателей, работают нормально, а с этой ничего не получается... Находил несколько тем на этом форуме, но не помогло
Что сделал неправильно и как исправить? Спасибо!
Листинг программы
- int ReadData(int kpn,int bn,OUT DWORD*time,OUT time_struct*btime,OUT DWORD*buf,IN OUT int*num,OUT BYTE*type)
Листинг программы
- typedef
- struct
- {
- DWORD sec;
- WORD msec;
- }time_struct;
Листинг программы
- [DllImport("datadrv.dll")]
- unsafe public static extern int _ReadData(int kpn, int bn, uint* time, out time_struct* btime, out uint* buf, int* num, out byte* type);
Листинг программы
- public struct time_struct
- {
- public uint sec;
- public ushort msec;
- }
Решение задачи: «Использование DLL, написанной на C++, в C# (указатели)»
textual
Листинг программы
- var buff = new uint[10];
- int count = buff.Length;
- ReadData( ..., buff, ref count, ... );
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д