Я скомпилировал DLL в Visual Studio (исходный код на C++, который я почти не понимаю). Вот кусок Scraper.h:Невозможно использовать DLL (написанную на C++) в Delphi: точка входа в процедуру не может быть найдена
struct SWin
{
char title[512];
HWND hwnd;
};
SCRAPER_API bool ScraperGetWinList(SWin winList[100]);
Теперь я пытаюсь использовать вышеуказанную функцию в моем Delphi приложения:
type
tWin = record
title: String;
hwnd: HWND;
end;
function ScraperGetWinList(var WinList: Array of tWin): Boolean; external 'Scraper.dll';
var
myWinList: Array [1..100] of tWin;
procedure TMainForm.GetWinListButtonClick(Sender: TObject);
begin
ScraperGetWinList(myWinList);
...
Проект не компилируется, и я получаю следующее сообщение: Точка входа процедуры ScraperGetWinList не может быть расположена в динамической библиотеке ссылок: Scraper.dll.
Что я делаю неправильно?
Сообщение об ошибке, которое вы цитируете, не принадлежит компилятору. Он исходит из ОС, когда он пытается запустить программу. Таким образом, ваш проект * компилируется *, иначе не было бы ничего, что могло бы заставить ОС выполнить. –
название не должно быть «string» в Delphi - использовать упакованный массив [1..512] из char –
Спасибо, Джерри. Я забыл об этом, имея дело с остальной частью беспорядка :-) – Mikhail