| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Builder App with MSVC dll |
| Автор: Kirgston 18.2.2011, 15:55 | ||||
Всем доброго времени суток! Собственно ГУЙ написан на билдере, ядро надо писать на студии. Вот только никак адекватно не могу подключить дллку от студии к билдеру. Собственно вот примерно в длл:
в билдере вызываю:
В дллку передается всё норм. Возвращается один символ о_О . Хотя в дллке стоит тупо для теста return "Hello"; Если выставить __stdcall в дллке и в билдере то вообще не видит дллку... причем если пытаюсь вызвать именно нужный код то получаю "мега крэшы" которых , если собрать в студии в виде ехе, нету. Дллка юзает много АСМ вставок + должна быть строго на студии. Гуй строго на билдере Добавлено через 3 минуты и 55 секунд Так же мне необходимо передать строку не в виде char\wchar_t а в виде примерно std::(w)string , но это не "Си" подобные вызовы. Что делать в этом случае? Или выходить что передавать вектора и вообще что то STL нельзя? |
| Автор: Kirgston 22.2.2011, 18:10 |
Спасибо, попробую. Но назревает вопрос... а почему тогда _stdcall не скушал? о_О увы но очень прискорбно :( тогда выходит что прийдется писать нечто типа своего маленького STLа |
| Автор: borisbn 22.2.2011, 18:21 | ||||||
M$VC, не смотря на extern "C", экспортирует функции с постфиксом типа foo@4
зачем ? достаточно в экспортируемых ф-циях использовать только POD-типы и указатели на них. вместо std::string char *, вместо std::vector<int> int * и т.д. а снаружи сразу "засовывать" их в классы stl. только учти, что нельзя возвращать указатели типа string.c_str() или &vector[0] для stl-классов, созданных на стеке. типа того
можно только для статически созданных или созданных как член класса
|