как вызвать файл dll в c.Я хочу передать ему XML-файл - PullRequest
0 голосов
/ 13 апреля 2010

Я нашел много способов, но они слишком просты, они всегда получают возвращаемое значение из файла dll.

Файл dll: файл с суффиксом ".dll"

1 Ответ

3 голосов
/ 13 апреля 2010

Это так же, как и любой другой WINAPI

// assuming you are using windows
LPCTSTR lpszXml = _T("<xml> </xml>");
TCHAR szResult[1000] = _T("");
HMODULE hModule = LoadLibrary(_T("mylibrary.dll"));
int (*DoWorkFunc)(LPCTSTR lpszXmlData, LPTSTR lpszResult, int cchMaxSize);

*(FARPROC*)&DoWorkFunc = GetProcAddress(hModule, _T("DoWork"));
int nLength = DoWorkFunc(lpszXml, szResult, 1000);
_tprintf(_T("input [%s] output [%s] length of the result [%d]\n")
         , lpszXml, szResult, nLength);

FreeLibrary(hModule);
// warning: no error handling is performed

Edit:
Поскольку я говорю на нескольких языках, я могу приблизительно угадать, что спросил ОП. Вероятно, это так:

Я нашел много способов [в интернете] загрузить файл DLL и вызвать внутри него функцию. Но те, что я нашел, включают в себя простые функции, такие как int add(int a, int b). Они получают только возвращаемое значение из функции. То, что я хочу сделать, это передать большой кусок данных и получить еще один большой кусок данных из функции. Как я могу передать большой кусок данных и получить большой кусок данных в качестве возвращаемого значения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...