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

Вниз

Заставить exe на Delphi грузить dll на c++   Найти похожие ветки 

 
X-Man   (2006-03-01 21:00) [0]

Собственно, как не крутил — так и не разобрался. Искал в инете — нашел много пространных рассуждений и примеры обратного преобразования (dll на c и exe на delphi). Может ли кто-нить привести маленький примерчик, чтоб он просто функцию булевскую с одним параметром передавал/принимал. Буду очень благодарен.
P.S. Грузиться должно динамически.


 
Desdechado ©   (2006-03-01 21:06) [1]

все просто:
1. не использовать сложных типов данных (массивы, строки, классы)
2. соблюдать соглашения о вызовах (stdcall, cdecl или другое)
3. помнить, что С корежит имена функций при компиляции


 
X-Man   (2006-03-01 21:14) [2]

Да вот это-то я знаю... Впрочем что значит "корежит"? :o
Можно все-таки примерчик, а? Я уже седня пару часов пыхтел над этим


 
DrPass ©   (2006-03-01 21:19) [3]


> помнить, что С корежит имена функций при компиляции

С++

> Впрочем что значит "корежит"?

Дописывает к ним всякую хрень вроде $oob&. Таким мудрым способом там реализован механизм перегрузки функций. Дабы этого не было, объявляй экспортируемые функции как extern "C"


 
Anatoly Podgoretsky ©   (2006-03-01 21:29) [4]

ДЛЛ не пахнет языком, вызывать можно из любого, писать на любом, лишь бы выполнялось соглашение об вызовае и поддерживались типы. Послностью совместимо только на СИ и на Фортране.


 
Desdechado ©   (2006-03-01 21:31) [5]

> пыхтел над этим
ну, и где результаты?
примерчик чего - длл на цпп? или использования в пасе?
loadlibrary + F1 + See also


 
X-Man   (2006-03-01 22:18) [6]

о! Я бы сам не допер до ТАКОГО. благодарю покорнейше.
Подлый си. Использовав TDUMP увидел в какую кашу превращаются имена функций, если не использовать extern "C". В итоге получилось так:

extern "C" __declspec(dllexport) int _cdecl SomeFunc(bool b)
{
if (b) return 42; else return 24;
}



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

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.04 c
2-1142885407
WestBronx
2006-03-20 23:10
2006.04.02
Проверка файла на "скрытый", отключение развёртывания.


2-1142416756
VitV
2006-03-15 12:59
2006.04.02
DBLookupComboBox-заполнение.


3-1139225777
Kodla
2006-02-06 14:36
2006.04.02
Создание процедуры(таблицы)


10-1114464197
agisland
2005-04-26 01:23
2006.04.02
Диаграммы Excel


15-1142236865
Alex_Delphi
2006-03-13 11:01
2006.04.02
Где достать исходник к InterBase 6.0.





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