powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строку в DLL из VB
9 сообщений из 9, страница 1 из 1
Строку в DLL из VB
    #33619954
kinolog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди прошу подскажите как на С написать Dll с функцией со строковыми параметрами, для того чтобы в последующем из VB передать строку этой функции. Просьба описать все подключаемые библиотеки. Зарание благодарен.
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33620019
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это тебе COM-объект писать надо. Создай в VC ATL-project. Визард практически все что нужно сам добавит. Можно и ручками канешна. По-моему, это разжована у Секунова "Разработка приложений на С++, С#".
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33620027
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или тебе на чистом С надо?
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33620108
kinolog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не просто у меня есть исходник для сжатия инфы *.c и *.h. Там есть функция Compress(строковый парметр). Я не знаю как мне ее объявить чтобы VB понял.
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33620168
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kinologНе просто у меня есть исходник для сжатия инфы *.c и *.h. Там есть функция Compress(строковый парметр). Я не знаю как мне ее объявить чтобы VB понял.Ну тогда создавай COM, добавляй в интерфейс какую-нибудь ф-цию и из нее вызывай свою сишную.
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33621412
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinologНе просто у меня есть исходник для сжатия инфы *.c и *.h. Там есть функция Compress(строковый парметр). Я не знаю как мне ее объявить чтобы VB понял.Обычно хватает такого:
Если в dll объявлена процедура
Код: plaintext
1.
2.
3.
void CompressFunction(char *SomeTextBuffer, int BufferLength) {
    // читаем из переданного буффера и пишем в него-же не выходя за пределы буффера
}
в VB объявляешь
Код: plaintext
Declare Sub CompressString Lib "MyDLL.dll" Alias "CompressFunction" (ByRef SomeString as String, ByVal StringLength as Integer)

и используешь:
Код: plaintext
1.
2.
dim s as String
s = "Some text"
CompressString(s, len(s))
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33621845
kinolog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlОбычно хватает такого:
Если в dll объявлена процедура
Код: plaintext
1.
2.
3.
void CompressFunction(char *SomeTextBuffer, int BufferLength) {
    // читаем из переданного буффера и пишем в него-же не выходя за пределы буффера
}


Здесь еще перед void нужно указать как объявлять библиотеку __declspec(dllexport) или __declspec(dllimport)

White OwlDeclare Sub CompressString Lib "MyDLL.dll" Alias "CompressFunction" (ByRef SomeString as String, ByVal StringLength as Integer)

выбивает ошибку "Bad DLL caling convention"
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33621891
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinologЗдесь еще перед void нужно указать как объявлять библиотеку __declspec(dllexport) или __declspec(dllimport)Нет, не нужно. Читайте учебники.

kinolog White OwlDeclare Sub CompressString Lib "MyDLL.dll" Alias "CompressFunction" (ByRef SomeString as String, ByVal StringLength as Integer)
выбивает ошибку "Bad DLL caling convention"Значит попробуй сменить тип функции с cdecl на stdcall.
Код: plaintext
void stdcall CompressFunction(char *SomeTextBuffer, int BufferLength);
...
Рейтинг: 0 / 0
Строку в DLL из VB
    #33621893
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и проверь чтоб в dll имя не предварялось подчерком.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строку в DLL из VB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]