Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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 ошибка исправлена.



Страницы: 1 вся ветка

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

Наверх















Память: 0.86 MB
Время: 0.039 c
1-3972
waw
2003-09-19 16:26
2003.10.02
Как DBGridEh сделать запрет на изменение определенных ячеек?


1-3966
Unknown
2003-09-20 10:42
2003.10.02
функция format


14-4099
Anna
2003-09-09 12:27
2003.10.02
---|Ветка была без названия|---


3-3715
Vadim
2003-09-13 19:29
2003.10.02
Что вместо BDE?


3-3775
varra
2003-09-11 15:21
2003.10.02
MS Access 97 + BDE + password





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский