Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Как в VB6 вызвать функцию из библиотеки C++   Найти похожие ветки 

 
ms   (2004-11-21 13:39) [0]

Скажите пожалуйста, мне нужно вызвать функцию из библиотеки написанной на VС++ .NET . Как я могу это сделать, если функция имеет такой прототип: char* cyrlat_conv(const char* src);

P.S. Не скупитесь на слова


 
DrPass ©   (2004-11-21 13:48) [1]

Я, конечно, не спец в .NET-программировании, но...
Из .NET-среды можно вызывать функции DLL на неуправляемом коде через System.Runtime.InteropServices.DllImport. А вот обратный процесс - управляемый код из неуправляемого, ИМХО, утопия


 
ms   (2004-11-21 14:13) [2]

DrPass ©   (21.11.04 13:48) [1]

А причем здесь .NET среда? VB6 это не .NET


 
DrPass ©   (2004-11-21 14:23) [3]

Зато VС++.NET - .NET


 
ms   (2004-11-21 14:38) [4]

Ну ладно скажите тогда вот чего:
в с++ она объявлена так:
char* myFunc();
в vb я объявляю ее вот так:
Private Declare Function MyFunc Lib _
"F:\RNLib.dll" Alias "myFunc" () As Long
и вызываю:
msgbox MyFunc
и она мне прекрасно возвращает указатель на нуль-строку.
А вот если я обьявляю в с++ так:
char* cyrlat_conv(const char* src);
в vb объявляю ее так:
Private Declare Function CyrLatConv Lib "F:\RNLib.dll" Alias "cyrlat_conv" (ByVal src As Long) As Long
и вызываю:
Dim str2convert As String
str2convert = "Привет"
MsgBox CyrLatConv(StrPtr(StrConv(str2convert, vbFromUnicode)))
то она выдает мне вот такую ошибку:
Run-time error "49"
Bad DLL calling convention



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.035 c
14-1101226867
syte_ser78
2004-11-23 19:21
2004.12.12
Тюльпан из бумаги


6-1096864298
Sasha aka Slon
2004-10-04 08:31
2004.12.12
локалка


1-1101443573
_sulent
2004-11-26 07:32
2004.12.12
Шрифты, подскажите?


1-1101886141
markers
2004-12-01 10:29
2004.12.12
База данных


14-1101266176
ИМХО
2004-11-24 06:16
2004.12.12
Динамо Киев - Рома Италия 2-0





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский