Захотел я сделать свою DLL visual studio 2019
Нашел этот "шедевр" https://learn.microsoft.com/ru-ru/cpp/build/walkthrough-creating-… view=msvc-170
Компилю а функций нет ! Пустая dll.
Рылся в инете и нашёл простое решение. И теперь в dll есть функция fibonacci_init.
#include "pch.h" #pragma once //#define MATHLIBRARY_API __declspec(dllexport) extern "C" __declspec(dllexport) float fibonacci_init( float x); BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return true; } float fibonacci_init( float x) { float a = 11; float b = 11.55f; float c = 21; c = ( a - b) * x + c + x; return c; }
Микрософт походу скоро потонет.
Примеры не компилятся как надо.
Directx sdk не поставить без бубна на windows 10.
11 ноября 2025 года Microsoft прекратит поддержку Windows 11(хотя он пару лет как вышел).
Видимо отличный продукт получился, что пора прекращать его поддерживать:)
Что дальше ? Linux ? :)
Ты явно не разобрался с макросом MATHLIBRARY_API.
Почитай внимательно в статье всё что про него написано.
Ждёмс новых открытий в плане DLL HELL.
Ты явно не разобрался с макросом MATHLIBRARY_API.
Почитай внимательно в статье всё что про него написано.
Даже не хочу начинать читать это.
ronniko
> Даже не хочу начинать читать это.
Тогда натолкнёшься на неожиданности когда попытаешься скомпилировать использующий библиотеку код.
Заголовку надо как то знать компилируется он в составе самой длл-ки или в составе использующего её кода.
Это важно.
ещё так можно тоже делать.
#define exp_fun extern "C" __declspec(dllexport) exp_fun void UpdateSomeFun( );
ronniko
> ещё так можно тоже делать.
А в примере MS сделано так:
#ifdef MATHLIBRARY_EXPORTS #define MATHLIBRARY_API __declspec(dllexport) #else #define MATHLIBRARY_API __declspec( dllimport) #endif
Т.е., если на момент компиляции определен макрос MATHLIBRARY_EXPORTS, то MATHLIBRARY_API превратится в __declspec(dllexport).
А если нет, то в __declspec(dllimport).
И в заголовке библиотеки все функции содержат в определении макрос MATHLIBRARY_API который должен получается, что по разному развернуться в импорт или экспорт в зависимости от того в какой среде его компилируют - какие макросы определены в момент компиляции.
Хм.... Чувствуется какой то план, так ведь?
=A=L=X=
> Тогда натолкнёшься на неожиданности когда попытаешься скомпилировать использующий библиотеку код.
Да он наверно использовать будет из-под ассемблера опять, а не из ц(пп).
Когда-нибудь у майков или интела лопнет терпение, и они создадут на ГД тему "Я фигею от Роннико".
А я от них :)
Я ваш Роника фигел.
А я ваш nes микрософтил :)