Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];




Вниз

Подкиньте перевод WinNT.h на pascal 


AlexKniga   (2003-09-19 12:30) [0]

Подкиньте перевод заголовочного файла WinNT.h на pascal, а то Windows.pas не полон :(



MBo   (2003-09-19 12:38) [1]

headconv от Bob Swart (drbob42.com)



PVOzerski   (2003-09-19 12:39) [2]

Посмотри исходники RTL от FreePascal. А лучше - конкретнее: какие функции отсутствуют и тебе нужны?



AlexKniga   (2003-09-19 13:17) [3]

headconv & исходники RTL от FreePascal посмотрю.

> А лучше - конкретнее: какие функции отсутствуют и тебе нужны?
Константы для пользования GetTokenInformation, AllocateAndInitializeSid и пр.



PVOzerski   (2003-09-19 13:38) [4]

В оригинале на Си:
typedef enum _TOKEN_INFORMATION_CLASS { // tic

TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics
} TOKEN_INFORMATION_CLASS;

Во FreePascal переведено как
TOKEN_INFORMATION_CLASS = (TokenUser := 1,TokenGroups,TokenPrivileges,
TokenOwner,TokenPrimaryGroup,TokenDefaultDacl,
TokenSource,TokenType,TokenImpersonationLevel,
TokenStatistics);

т.е. использована конструкция, не поддерживаемая в Delphi. При этом далее после TokenUser фактически прибавляется по единице - совместимо ли это с Си (т.е. не ошибочен ли перевод), я не знаю.
Ясно, что если перевод правилен, то в Delphi эта несовместимость обходится элементарно:

TOKEN_INFORMATION_CLASS = (Token__DUMMY,TokenUser,TokenGroups,TokenPrivileges,
TokenOwner,TokenPrimaryGroup,TokenDefaultDacl,
TokenSource,TokenType,TokenImpersonationLevel,
TokenStatistics);



AlexKniga   (2003-09-19 14:09) [5]

> При этом далее после TokenUser фактически прибавляется по единице - совместимо ли это с Си (т.е. не ошибочен ли перевод), я не знаю.
По-моему ошибки нет. В паскале всегда, а в си поумолчанию перечисление идет с инкрементом 1.

В TP перечисление начиналось с 1, а в Delphi с 0, так я этих болванов плодил...



AlexKniga   (2003-09-19 14:16) [6]

Или в TP перечисленный тип был на основе Integer, а в Delphi на основе Cardinal, в общем не важно. Просто тоже были нужны болваны.



PVOzerski   (2003-09-19 14:47) [7]

А можно вооще не Enum"ом объявлять, а что-нибудь вроде
const
TokenUser = 1;
...
TokenStatistics=...
type
TOKEN_INFORMATION_CLASS=TokenUse..TokenStatistics;



Amoeba   (2003-09-19 15:01) [8]

Посмотри ftp://delphi-jedi.org/api/win32api.zip



PVOzerski   (2003-09-19 15:05) [9]

2Amoeba: Hi!!! :^)
2AlexKniga ©: Там в дистрибутиве FPC еще есть утилитка h2pas - название говорит само за себя.



AlexKniga   (2003-09-19 15:28) [10]

Я натравил headconv от Bob Swart (drbob42.com) на WinNT.h из VS.NET, так он конвертит уже час. horror!



AlexKniga   (2003-09-19 16:07) [11]

h2pas winnt.h не берет: не понимает
#define TYPE_ALIGNMENT( t ) \
FIELD_OFFSET( struct { char x; t test; }, test )

#endif

и пр.



PVOzerski   (2003-09-19 16:49) [12]

Еще утилита есть на http://www.astonshell.com/



AlexKniga   (2003-09-19 18:22) [13]

2 PVOzerski
Спасибо!

Я остановился на JEDI Windows API Library
отдельная благодарность Amoeba



AlexKniga   (2003-09-19 18:29) [14]

В Windows.pas из Delphi5 ошибка в декларировании функции
function AllocateAndInitializeSid(const pIdentifierAuthority: TSIDIdentifierAuthority; {надо PSIDIdentifierAuthority}
nSubAuthorityCount: Byte; nSubAuthority0, nSubAuthority1: DWORD;
nSubAuthority2, nSubAuthority3, nSubAuthority4: DWORD;
nSubAuthority5, nSubAuthority6, nSubAuthority7: DWORD;
var pSid: Pointer): BOOL; stdcall;
{$EXTERNALSYM AllocateAndInitializeSid}


В JEDI Windows API Library ошибка исправлена.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.032 c
3-3805            rh                    2003-09-10 14:36  2003.10.02  
Ошибка при открытии mdb-файла


14-4087           raper                 2003-09-14 17:11  2003.10.02  
Простите но мой вопрос касаеться винды


4-4172            Pauk                  2003-07-30 17:18  2003.10.02  
Popup


1-3924            Alex21                2003-09-18 11:42  2003.10.02  
Ускорение работы Excel при взаимодействии со Stringgrid


3-3740            Patrick               2003-09-15 09:35  2003.10.02  
Переменная DateTime в запросах SQL.