| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > вызов ф-ции из C-Dll |
| Автор: Max111 19.6.2006, 22:51 |
| Доброе утро, Подскажите в чем я могу быть не прав. Есть DLL предоставленная заказчиком, по документации описание необходимого мне вызова следующее BOOL startSystem (char *strPlatformDir, UINT nPlatforms, char strPlatforms[][_MAX_DIR], char strPlatRegPath[][_MAX_DIR+_MAX_PATH], BOOL bEnableConsoles, BOOL bUsingPDD, BOOL bUsingTIU, char *strPreStartCommandFile, char *strPostStartCommandFile, char *strLicenseKey); Я перевожу его на дельфи вот так Function startSystem(strPlatformDir: pchar; nPlatforms: HWND; strPlatforms: pchar; strPlatRegPath:pchar; bEnableConsoles: BOOLEAN; bUsingPDD: BOOLEAN; bUsingTIU: BOOLEAN; strPreStartCommandFile: pchar; strPostStartCommandFile: pchar; strLicenseKey: pchar): BOOL; stdcall; external 'eas.dll'; но система при таком вызове не запускается выдавая ошибку обращения к памяти. Как я понимаю: я могу ошибаться в декларации двухмерного C массива (strPlatforms и strPlatRegPath) как переменные pchar. Вопрос правильно я их перевожу и если не правильно то как надо? |
| Автор: Poseidon 19.6.2006, 23:22 |
Сразу возникли вопросы:
PS. C Си не знаком, поэтому возможно чего-то не понял в "их" коде |
| Автор: Yanis 19.6.2006, 23:45 | ||||
| Если я не ошибаюсь, то в Delphi будут деклариться, соответственно:
|
| Автор: bems 20.6.2006, 10:06 |
| BOOL так и переводи (boolean - не то). А конвенция наверное cdecl Добавлено @ 10:08 UINT и HWND в принципе одно и тоже, но для разных целей. А в модуле windows UINT объявлен |
| Автор: Yanis 20.6.2006, 10:22 |
Ну от stdcall это мало различается. |