Главная страница
    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.034 c
9-1092494837
Макс
2004-08-14 18:47
2004.12.12
Алгоритм объезда препятствий


14-1100809808
OneFragLeft
2004-11-18 23:30
2004.12.12
Про винты.


3-1100156376
Брат
2004-11-11 09:59
2004.12.12
Проверка существования таблицы


4-1098890520
Proger
2004-10-27 19:22
2004.12.12
Утечка памяти


1-1101544263
Александр В.
2004-11-27 11:31
2004.12.12
Сохранение позиции TTreeView после обновления





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский