Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Библиотеки на С++ для Дельфи. [D6, XP]


Страницы:   1 2 3

Drowsy ©   (2009-02-05 01:25:00) 

Можно на С++ создать библиотеку, которую можно будет в Дельфи использовать?


Drowsy   (2009-02-06 20:09:00) [1]

В блокноте такой кусок встречается:
....  
\x1 MyDll.dll @Mess$qv ___CPPdebugHook
.......


Ega23   (2009-02-06 19:29:00) [2]


> А как это сделать?


Да тупо HEX-Editor'ом открой. Или блокнотом и имя функции найди.


Drowsy   (2009-02-06 19:22:00) [3]


> Посмотри, в каком виде у тебя прописалась данная функция
> в DLL.

А как это сделать?


Ega23   (2009-02-06 14:43:00) [4]

О! Ещё одну штуку вспомнил.
Посмотри, в каком виде у тебя прописалась данная функция в DLL. Как-то раз наткнулись, что если какую-то сишную директиву не выставить, то к имени функции какой-то мусор добавляется, типа вместо "MyFunc" внутри dll сидит "MyFunc__%"


Сергей М.   (2009-02-06 14:38:00) [5]

Откажись на время от стат.загрузки, грузи библ-ку в динамике.
О результатах доложись.


Drowsy   (2009-02-06 12:47:00) [6]

И с рантайм и без один и тот же эффект.


Drowsy   (2009-02-06 12:43:00) [7]

Наверное из-за too many consecutive exceptions


Сергей М.   (2009-02-06 12:42:00) [8]

Стек загажен


Drowsy   (2009-02-06 12:42:00) [9]

... и ещё, если всё оставить, а убрать вызов Mess(), то работает.


Drowsy   (2009-02-06 12:39:00) [10]

Ага, сейчас попробую.

(Кстати, может это о чём-то подскажет:
В окне CPU, при трассировке, ошибку вываливает при выполнении
ntdll.RTLunwind. )


Сергей М.   (2009-02-06 12:35:00) [11]


> Drowsy   (06.02.09 12:32) [39]


Загляни в опции обоих проектов на закладку Pakages, там д.б. крыжик - сними его и там и здесь, после чего пересобери оба проекта и повтори трассировку


Сергей М.   (2009-02-06 12:33:00) [12]


> Ega23 ©   (06.02.09 12:30) [38]


В дан.случае фиолетово - до собственно вызова, судя по [31], дело не додит


Drowsy   (2009-02-06 12:32:00) [13]

С готовностью.
Только я не понимаю, что значит "собери без рантаймов" -
убрать библиотеку с убогой функцией вообще?
Тогда кроме голой формы ничего не останется. :)


Ega23   (2009-02-06 12:30:00) [14]

Почему stdcall? Где он явно указан в сишной части?
ЕМНИП, там по-умолчанию cdecl используется (хотя тоже не факт).

stdcall у тебя и в приложении должно фигурировать, и в библиотеке.


Сергей М.   (2009-02-06 12:28:00) [15]

Для начала собери оба проекта без использования рантайм-пакетов, потом будем обсуждать


Drowsy   (2009-02-06 12:26:00) [16]

Только stdcall добавил, но это ничего не изменило:
procedure Mess(); stdcall; external 'MYDLL.dll' name 'Mess';


Drowsy   (2009-02-06 12:24:00) [17]

Drowsy   (06.02.09 09:14) [12]


Drowsy   (2009-02-06 12:22:00) [18]

В С++ билдере всё же идёт...


Сергей М.   (2009-02-06 12:22:00) [19]

А где текст юнита, в котором фигурирует Mess() ?


Drowsy   (2009-02-06 12:20:00) [20]

Может какие директивы компилятору нужны или опции линка???


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо