Доступно ли определение функции Win32 API в формате «база данных» / XML? - PullRequest
3 голосов
/ 22 сентября 2008

Я ищу список win32 API в каком-то формате "базы данных" / XML.

Мне нужно было бы легко создать «слой преобразования» между win32 API и языком более высокого уровня, который я использую (harbor / xharbour). Так как при этом запускается Pcode, необходимо преобразовать параметры в стандарт C ...

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

просто, например, определение Windows API (взято из MSDN)

DWORD WINAPI GetSysColor(
  __in  int nIndex
);

должно быть преобразовано в

HB_FUNC( GETSYSCOLOR )
{
    hb_retnl( (LONG) GetSysColor( hb_parni( 1 ) ) );
}

Ответы [ 4 ]

1 голос
/ 22 сентября 2008

AFAIK, pinvoke.net хранит только текстовые данные с определением PInvoke для вызова. Не очень полезно, если вы хотите что-то использовать в качестве предварительно проанализированной базы данных API.

Возможно, вы могли бы создать небольшой анализатор, который будет принимать включаемый файл и переводить его в то, что вам нужно. В этом случае я бы порекомендовал использовать включаемые файлы lcc-win32 , так как они являются в значительной степени обезжиренной / без BS-версией заголовков SDK (они не поставляются с кучей специальные зарезервированные слова, которые вы должны игнорировать и т. д.)

1 голос
/ 22 сентября 2008

Конечно, у вас есть Microsoft Platform SDK, но он находится в необработанном .h C-коде, поэтому его сложно разобрать!

Аналогичная работа была проделана пользователями VB (и пользователями Delphi и, возможно, для некоторых других языков), например ApiViewer имеет такую ​​базу данных, но в каком-то проприетарном двоичном формате (расширение .apv), так что вы возможно, придется перепроектировать его.
Точно так же есть API-руководство, которое размещалось на Allapi.net, но позднее, похоже, это место для парковки. Он использовал .api файлы (опять же бинарные проприетарные).

0 голосов
/ 03 января 2017

Кажется, есть какая-то база данных (и приложение для ее использования, с именем " PInvoke Interop Assistant ") по адресу:

https://github.com/jaredpar/pinvoke/tree/master/StorageGenerator/Data

хотя я не уверен, какая сейчас лицензия & mdash; таким образом я спросил авторов .

0 голосов
/ 22 сентября 2008

О ближайшем, что я знаю, было бы: http://pinvoke.net/ Может быть, они поделятся своими данными с вами? У них есть инструмент VS, который обращается к этим данным, так что это может быть веб-сервис. Вы могли бы даже уловить это.

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