Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.08;
Скачать: CL | DM;

Вниз

Библиотеки 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
9-22903
3d[Power]
2002-12-04 08:58
2003.05.08
Геометрия (учебника у меня нету).


3-23038
SerGa
2003-04-18 01:19
2003.05.08
DBIERR_LOCKFILELIMIT - Что это?


1-23183
Rem100
2003-04-24 18:36
2003.05.08
TImage не присваивается иконка приложения


6-23257
dim-
2003-02-18 18:09
2003.05.08
ip и Mac-адрес


3-22984
Tundra
2003-04-17 15:03
2003.05.08
Вопрос по Oracle - кто нибудь подскажите ?