Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строку в DLL из VB / 9 сообщений из 9, страница 1 из 1
23.03.2006, 12:53
    #33619954
kinolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
Люди прошу подскажите как на С написать Dll с функцией со строковыми параметрами, для того чтобы в последующем из VB передать строку этой функции. Просьба описать все подключаемые библиотеки. Зарание благодарен.
...
Рейтинг: 0 / 0
23.03.2006, 13:05
    #33620019
_Балтика
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
Это тебе COM-объект писать надо. Создай в VC ATL-project. Визард практически все что нужно сам добавит. Можно и ручками канешна. По-моему, это разжована у Секунова "Разработка приложений на С++, С#".
...
Рейтинг: 0 / 0
23.03.2006, 13:06
    #33620027
_Балтика
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
Или тебе на чистом С надо?
...
Рейтинг: 0 / 0
23.03.2006, 13:22
    #33620108
kinolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
Не просто у меня есть исходник для сжатия инфы *.c и *.h. Там есть функция Compress(строковый парметр). Я не знаю как мне ее объявить чтобы VB понял.
...
Рейтинг: 0 / 0
23.03.2006, 13:38
    #33620168
_Балтика
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
kinologНе просто у меня есть исходник для сжатия инфы *.c и *.h. Там есть функция Compress(строковый парметр). Я не знаю как мне ее объявить чтобы VB понял.Ну тогда создавай COM, добавляй в интерфейс какую-нибудь ф-цию и из нее вызывай свою сишную.
...
Рейтинг: 0 / 0
23.03.2006, 18:03
    #33621412
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
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
23.03.2006, 21:45
    #33621845
kinolog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
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
23.03.2006, 22:26
    #33621891
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
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
23.03.2006, 22:26
    #33621893
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строку в DLL из VB
и проверь чтоб в dll имя не предварялось подчерком.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строку в DLL из VB / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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