Работа с библиотекой в проекте C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. В проекте C# я подключил библиотеку, написанную, как я понял, на C++, но возникли проблемы с использованием ее функций. Ее суть в том, что она создает канал управления, а затем обращаясь к нему, общается с другой программой. У этой библиотеки есть заголовочные файлы (*.pas и *.h) для проектов на языках Delphi и C++ соответственно. Вырезка из *.h:
//создание канала управления
void * __import CreateObject(void);
 
// Передача файла
bool __import SendFile(void *h, char *file_name);
 
// Закрытие канала управления
void __import DestroyObject(void *h,   // хэндл объекта управления
                            bool close_app); // флаг закрытия
Вырезка из *.pas:
        // Создание объекта управления 
        // ~возвращает хэндл объекта управления h
        function CreateObject() : THandle; cdecl; external 'ctl.dll';
 
        // Передача файла
        function SendFile(h : THandle; file_name:PChar) : Boolean; cdecl; external 'ctl.dll';
 
        // Уничтожение объекта управления
        procedure DestroyObject(h : THandle;
                                close_app : Boolean); cdecl; external 'ctl.dll';
Суть вопроса в следующем: как мне создать канал управления, а затем передавать его в другие функции библиотеки, в моем проекте на C#? P.S. Прошу прощения, если вопрос не в соответствующей теме, пишу первый раз, другой подходящей темы не нашел.

Решение задачи: «Работа с библиотекой в проекте C#»

textual
Листинг программы
[DllImport("CTL.dll", CharSet = CharSet.Auto)]
public static extern IntPtr CreateObject();
 
/*******************/
IntPtr handle = CreateObject();
bool result = SendFile(handle,file); // отправляем функции хэндл окна и имя файла

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5
Похожие ответы