gary hagerty Ответов: 1

Как вызвать DLL C++ из VB6


Всем Привет,

Я пытаюсь вызвать функцию в DLL C++ из VB6.

Вызов функции в библиотеке DLL C++ - это aslfollow:

&ГТ;DLLFUNC(инт) MDNSa35dbd7v2(инт обслуживание, инт AC0_CryptoKeyTable, без знака типа char* семенного материала, без знака типа char* ключ) {
возвращение (a35dbd7v2(обслуживание, AC0_CryptoKeyTable, семян, ключ));
}

Где #определить VBDLLFUNC(Имя_типа) с атрибутом dllexport имя как __stdcall

Как бы выглядело фактическое объявление в VB6

По словам заказчика, если я отправлю 5 байт из 11 для семени или 1111111111

Я мог бы получить обратно 5 байт 22 для ключа или 2222222222

Пожалуйста, посоветуйте

Спасибо

Что я уже пробовал:

Я много гуглил, но не нашел ничего, связанного с моим делом.

Richard MacCutchan

Вам нужно поговорить с людьми, которые создали библиотеку.

1 Ответов

Рейтинг:
6

KarstenK

Прочтите эту замечательную статью Вызов библиотек DLL C++ из VC++ и VB относительно деталей.

Совет: создайте собственную библиотеку dll C++ с тем же интерфейсом чтобы проверить и проверить ваш код интерфейса.


Maciej Los

5ed!

gary hagerty

Здравствуйте Сэр,

Большое вам спасибо за ваш ответ.

Пожалуйста, имейте в виду, что я новичок в C++.

Я использую следующее объявление при вызове функции выше:

Объявить функцию MDNSa35dbd7v2 Либ "C:\NewSP\VCSrc\MDTestDLL\Debug\MDTestDLL.dll" (обслуживание бывал, как долго, как долго CryptoKeyTable бывал, бывал семян Как строку, ключ бывал как строка) как долго

Когда я вызываю функцию, я делаю это следующим образом:

Дим лретваль как долго
Тусклый Скей как струна
Dim sSeed как строка

sSeed = Chr(11) & Chr(11) & Chr(11) & Chr(11) & amp; Chr(11)
lRetVal = MDNSa35dbd7v2(&H1, &H3C, sSeed, sKey)

Для достижения своей цели я хотел бы сделать следующее:

1. Как я могу проверить sSeed, чтобы убедиться, что он равен тому, что я передал?

2. в кодах C++ я устанавливаю key = seed, а затем отображаю результат в VB6, но получаю пустую строку, что я делаю не так?

3. Что такое VB6-эквивалент unsigned char*?

4. означает ли*, что значение передается по ссылке?

Спасибо

Гэри