delphi Импорт функции dll с указанной точкой входа - PullRequest
4 голосов
/ 11 марта 2011

Как я могу определить эту функцию в Delphi? Я знаю только импорт без точки входа и не могу найти ни одного полезного примера: (

Это написано на C #

[DllImport("dwmapi.dll", EntryPoint = "#131")]
static extern int DwmpSetColorizationParameters(ref DwmColorParams dcpParams, 
bool alwaysTrue);

Большое спасибо

С наилучшими пожеланиями

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Это должно сработать, хотя я не уверен насчет const для alwaysTrue.

function DwmpSetColorizationParameters(var dcpParams: TDwmColorParams; 
  alwaysTrue: BOOL): Integer; stdcall; 
  external 'dwmapi.dll' index 131;
1 голос
/ 12 марта 2011

Поле EntryPoint позволяет объявлять функцию с именем, отличным от того, которое использовала DLL для его экспорта. Если первый символ значения #, то он указывает порядковый номер функции вместо имени DLL для нее.

Delphi использует два разных предложения. Если DLL использует имя, отличное от имени в вашем коде, тогда вы можете использовать предложение name:

procedure Foo(...); external DLL name 'Bar';

Но если DLL вообще не экспортирует никакое имя, вы можете использовать предложение index, чтобы определить, какое порядковое значение имеет функция:

procedure Foo(...); external DLL index 131;
...