Вниз
Скачать: CL | DM;

Как в 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
4-1098970024
TitanDesign
2004-10-28 17:27
2004.12.12
Как запустить приложение и подождать пока она закроется.


4-1098544849
DL
2004-10-23 19:20
2004.12.12
Как получить уникальную информацию о компьютере


9-1092384941
pavel_pavel
2004-08-13 12:15
2004.12.12
Инвентарь в игре


14-1100856691
парамоша
2004-11-19 12:31
2004.12.12
Сало в шоколаде: миф или реальность?


3-1099992694
EthernalWonderer
2004-11-09 12:31
2004.12.12
подключение к Oracle через O D A C




   Наверх