Название: [Решено]Написание dll на с++ Отправлено: merke от Марта 22, 2010, 14:17 Всем привет!
Встала задача написать dll на c++, чтобы потом её можно было подключить и использовать в visual basic 6. Да вот такое вот извращение, но что поделаешь надо реализовать! Допустим у меня есть такая функция: Код: int sum(int x, int y) Потом после компиляции библиотеки я буду подключать к проекту следующим образом: Код
Использую в API вызове тип LONG потому что в vb интереджеровский тип занимает 2 байта, а в с++ 4. Так вот теперь теперь сам вопрос! Где мне писать саму библиотеку в VC++ или C++ Builder 6.0 или может даже можно в Qt??? Пожалуйста, если можно, показать на маленьком примере. Этот вопрос много раз ставился на других форумах, но так ни кто и не мог дать вразумительный ответ. Буду очень благодарен за оказанную мне помощь! С уважением, Александр! Название: Re: Написание dll на с++ Отправлено: merke от Марта 22, 2010, 14:57 Пробую вот так в VC++:
Cоздаю проект "Win32 Dynamic-Link Library" DLLTEST.H Код: #ifndef _DLLTEST_H_ DLLTEST.CPP Код: #include "dlltest.h" Всё компилю получаю три файла dll, lib, exp В vb пишу: Код
При запуске вижу ошибку: "Bad DLL calling convention" SOS, нужна помощь))) Название: Re: Написание dll на с++ Отправлено: niXman от Марта 22, 2010, 15:25 для начала, скажи, какую "конверсию" ожидает vb ?
Название: Re: Написание dll на с++ Отправлено: merke от Марта 22, 2010, 15:50 а подробнее, я понимаю под конверсией преобразование объектов исчисления
Название: Re: Написание dll на с++ Отправлено: niXman от Марта 22, 2010, 16:04 гуглить по ключевым словам "calling convention"
Название: Re: Написание dll на с++ Отправлено: merke от Марта 22, 2010, 16:43 В общем спасибо за подсказку, сделал так и всё заработало:
DLLTEST.H Код: #ifndef _DLLTEST_H_ DLLTEST.CPP Код: #include "dlltest.h" И самое главное .DEF файл: LIBRARY TESTDLL CODE PRELOAD MOVEABLE DISCARDABLE DATA PRELOAD SINGLE EXPORTS PassStrStdCall @1 Теперь в VB делаю следующее: Код
И всё работает, всем спасибо!!! |