Member 14061434 Ответов: 3

Как использовать DLL C++ (VB) в C ?


Я написал этот код в качестве примера.
Я написал этот код на Visual Basic C++. Теперь я хочу вызвать его в с.
Я хочу получить 20 В С.
Ты можешь вести меня?
спасибо.
Я создал эту библиотеку Dll на языке C++ :

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

extern "C" __declspec(dllexport) int number(int a); 
int DllMain()
{
    a=20;        
    return (a);
}

3 Ответов

Рейтинг:
1

OriginalGriff

Если вы действительно используете Visual Basic, то "совсем не легко".
Во - первых, Visual Basic не имеет ничего общего с C++ - это управляемый язык .NET, а значит, вам нужен соответствующий .NET framework устанавливается и загружается на машину для того, чтобы использовать ее.

C не управляется, он родной - он вообще ничего не знает о .NET - поэтому он становится очень сложным: Вызов C# из C - Stack Overflow[^] (C# - это еще один язык .NET, и это точно такая же процедура для VB).

Если вы хотите вызвать собственные функции C++ из C, это проще: Смешивание кода C и C++ в одной программе[^]
Просто не используйте термин "Visual Basic" снова - это не имеет ничего общего с C или C++!


Рейтинг:
1

KarstenK

Код, который вы написали, имеет основной недостаток, объявляя числовую функцию, но реализуя основную. Запишите объявление в заголовок, а реализацию-в c-файл.

Оно ДОЛЖЕН иметь ту же подпись, что и заявленная. Так:

int number(int a)
{
    a=20;        
    return (a);
}
Вызов библиотек DLL через GetProcAdress это очень просто, но позаботьтесь о подписи и каждой ошибке.


Рейтинг:
0

Richard MacCutchan

Вы не можете использовать его на любом языке, если не предоставите соответствующий интерфейс. DllMain вызывается Windows при первой загрузке библиотеки, это не пользовательская функция. Видеть Создание и использование библиотеки динамических ссылок (C++) | Microsoft Docs[^].

Также не существует такого понятия как Visual Basic C++.