Форум: "Потрепаться";
Текущий архив: 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.044 c