Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: 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 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
3-1100166567
Автор333
2004-11-11 12:49
2004.12.12
Сложение столбца!


14-1101007383
Александр1
2004-11-21 06:23
2004.12.12
Глюк windows 2003


1-1101475987
Dmitry_04
2004-11-26 16:33
2004.12.12
Что значит $ в объявлении констант типа integer?


14-1101310747
Empleado
2004-11-24 18:39
2004.12.12
may be useful


14-1100344529
VID
2004-11-13 14:15
2004.12.12
Как сделать так...