Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Вниз

Библиотеки C++ и Delphi   Найти похожие ветки 

 
Manulo   (2003-04-21 16:01) [0]

Собственно можно ли подключить любую сишнуб библиотеку (С++ билдера 5) к делфе? Вот :)


 
wicked   (2003-04-21 16:07) [1]

имхо можно.... почти.... :)


 
Manulo   (2003-04-21 16:11) [2]

Я так и подумал :) А теперь вопрос на засыпку, как? :) К билдеру делфяцкие модули прикрутил, а наоборот нет :( А нада :(


 
JibSkeart   (2003-04-21 16:28) [3]

Хотелось бы и самому увидеть :))

Толко вот помойму ентого сделать нельзя


 
Manulo   (2003-04-21 16:32) [4]

А это плохо... Здаёться мне, что во времена ТурбоПаскаля можно было делать вставки кода на си и на асме.... На асме можно и в Делфе, а вот си....? Это плохо....


 
Слесарь Матерящийся   (2003-04-21 16:42) [5]

Там проблема с расширениями имён функций.
По BCB имя на экспорт - это <Имя ф-и>+"$"+<Строка, характеризующая параметры>.

Для получения списка ф-й используйте tdump.

Для просмотра - PE explorer.

Если dll поставляется в готовом виде, используйте динамическую загрузку и импортируйте по именам, выявленным tdump.

Если пишете dll сами, можно этого не делать, но потребуются манипуляции с def файлом при сборке dll в BCB.
Если хотите узнать, как, могу рассказать.


 
Manulo   (2003-04-21 16:50) [6]


> Если dll поставляется в готовом виде, используйте динамическую
> загрузку и импортируйте по именам, выявленным tdump.
>
> Если пишете dll сами, можно этого не делать, но потребуются
> манипуляции с def файлом при сборке dll в BCB.
> Если хотите узнать, как, могу рассказать.

Фак в том, что это не *.dll, а *.h... Вот...


 
Слесарь Матерящийся   (2003-04-21 17:03) [7]

А! Ну, если .h + .c или .срр, тогда никaк...


 
Manulo   (2003-04-21 17:48) [8]

фак :(....
Ну собственно я вот к чему спрашивал... Скачал с MSDN Microsoft Speech SDK, а как прикантачить его к делфе, пока не придумал :( Там есть готовые библиотеки под С++ и пот VB, примеры под DHTML, а вот делфю, родную, великую и могучую, мелкософтовцы не жалуюют :(((

Если есть пару намёков (может я в чём то не прав) как использовать SDK совмесно с делфей, поделитесь, народ, не скупитесь на советы :)


 
wicked   (2003-04-21 19:06) [9]


> Скачал с MSDN Microsoft Speech SDK

так с этого надо начинать - там другой формат библиотек... даже билдер их не прожует...
разве что найти конвертеры типа coff2omf, хотя, по моему печальному опыту, они не работают.....


 
wnew   (2003-04-21 19:36) [10]

Если я правильно понял, что тебя интересует, то нужно, просто руками переписывать Сишные структуры в паскалевские, к примеру так:
Си c MSDN:
typedef struct _IP_ADAPTER_INFO { struct _IP_ADAPTER_INFO* Next; DWORD ComboIndex; char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4]; char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]; UINT AddressLength; BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; DWORD Index; UINT Type; UINT DhcpEnabled; PIP_ADDR_STRING CurrentIpAddress; IP_ADDR_STRING IpAddressList; IP_ADDR_STRING GatewayList; IP_ADDR_STRING DhcpServer; BOOL HaveWins; IP_ADDR_STRING PrimaryWinsServer; IP_ADDR_STRING SecondaryWinsServer; time_t LeaseObtained; time_t LeaseExpires;
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;

Превращенно в Паскаль:
time_t = int64;

PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
IP_ADAPTER_INFO = packed record
Next : PIP_ADAPTER_INFO;
ComboIndex : DWORD;
AdapterName : array [1..MAX_ADAPTER_NAME_LENGTH+4] of Char ;
Description : array [1..MAX_ADAPTER_DESCRIPTION_LENGTH+4] of Char;
AddressLength : UINT;
Address : array [1..MAX_ADAPTER_ADDRESS_LENGTH] of Byte;
Index : DWORD;
dwType : UINT;
DhcpEnabled : UINT;
CurrentIpAddress : PIP_ADDR_STRING;
IpAddressList : IP_ADDR_STRING;
GatewayList : IP_ADDR_STRING;
DhcpServer : IP_ADDR_STRING;
HaveWins : Boolean;
PrimaryWinsServer : IP_ADDR_STRING;
SecondaryWinsServer : IP_ADDR_STRING;
LeaseObtained : time_t;
LeaseExpires : time_t;
end;
А за тем импортировать нужные тебе функции из MSDN библиотек с необходимыми параметрами.
Пример:
function GetAdaptersInfo(const pAdapterInfo : PIP_ADAPTER_INFO;const pOutBufLen : PULONG) : DWORD; stdcall; external "IPHLPAPI.DLL" name "GetAdaptersInfo";


 
wnew   (2003-04-21 19:38) [11]

Хм. Там плохо получилось, текст не отформатирован. Я просто скопировал с сайта MSDN.


 
wnew   (2003-04-21 19:55) [12]

Разумеется, структуру: PIP_ADDR_STRING тоже нужно превратить в паскаль и константам: MAX_ADAPTER_NAME_LENGTH, MAX_ADAPTER_DESCRIPTION_LENGTH и MAX_ADAPTER_ADDRESS_LENGTH присвоить соответствующие значения.


 
[NIKEL]   (2003-04-21 21:15) [13]

wicked © (21.04.03 19:06)

> Скачал с MSDN Microsoft Speech SDK

так с этого надо начинать - там другой формат библиотек... даже билдер их не прожует...
разве что найти конвертеры типа coff2omf, хотя, по моему печальному опыту, они не работают.....


--------------------------------------------------------------------------------
прожует еще как, coff2omf и все в порядке


 
Manulo   (2003-04-22 11:34) [14]


> wnew © (21.04.03 19:36)

Спасибо, будем жевать



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

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

Наверх





Память: 0.48 MB
Время: 0.009 c
1-23120
scorpi
2003-04-27 18:58
2003.05.08
Цвета строк в Memo и RichEdit


8-23240
Ssergy
2003-01-27 20:29
2003.05.08
Отрисовать массив 3D


3-23001
pirat
2003-04-16 22:06
2003.05.08
BDE, ODBC, MIDAS, ADO. Что лучше ?


14-23355
Andrey V.
2003-04-17 13:25
2003.05.08
Access violation


3-22924
Avreliy
2003-04-19 21:45
2003.05.08
Объединение с значением NULL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский