Пятница, 2024-03-29, 1:10 AM

Поиск
Меню
Категории раздела
PHP [40]
Cкриптовый язык программирования общего назначения
MySQL [1]
Cвободная система управления базами данных (СУБД)
jQuery [8]
Библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML
CSS [60]
Cредство описания, оформления внешнего вида веб-страниц
JavaScript [161]
Прототипно-ориентированный скриптовый язык программирования
Веб-дизайн [2]
Проектирование пользовательских веб-интерфейсов для сайтов или веб-приложений
RegExp [1]
Регулярные выражения
SEO [2]
Продвижение и раскрутка сайтов. Заработок в сети.
C/C++ [3]
Компилируемый статически типизированный язык программирования общего назначения
Windows [4]
Программистам под ОС MS Windows
HGE [2]
Игровой движок HGE (Haaf's Game Engine)
Игровой дизайн [8]
Психология дизайна игр
Разработка игр [2]
Общие моменты, относящиеся к геймдеву
wxWidgets [2]
Библиотека инструментов для разработки кроссплатформенных приложений
PureBasic [10]
Кроссплатформенный компилятор и IDE для быстрой разработки
VST [6]
Steinberg's Virtual Studio Technology (VST)
iOS [1]
Mобильная операционная система, разрабатываемая и выпускаемая американской компанией Apple
Пиксельная графика [9]
Pixel art и все, что с ним связано
libGDX [2]
Кроссплатформенный открытый движок на Java, позволяющий создавать 2D и 3D игры под различные платформы, среди которых: Android, HTML5, Windows, Linux, iOS.
Поддержи проект!
Рекомендуем


Блог разработчика

Главная » 2011 » Июнь » 1 » DLL для Visual C++ на Purebasic
1:34 AM
DLL для Visual C++ на Purebasic
А все на самом деле очень просто.

1. Пишем код DLL

; получаем путь к Application Data
ProcedureDLL GetAppDataPath(*path)
  Protected Pth.s = Space(#MAX_PATH * 2)
  SHGetFolderPath_(0, #CSIDL_APPDATA, 0, 0, @Pth)
  PokeS(*path, Pth)
EndProcedure


2. Собираем DLL

3. В настройках линкера в проекте добавляем в импорты lib-файл, который создался при компиляции нашейц DLL

4. Создаем h-файл, в котором пишем:

#pragma once
#ifdef __cplusplus
extern "C"{
#endif
#define MYSYSTEM_API __declspec(dllexport) __stdcall
    void MYSYSTEM_API GetAppDataPath(char* path);
#ifdef __cplusplus
    }
#endif


5. Где требуется вызов, подключаем наш заголовочник и юзаем функцию

char path[_MAX_PATH];
GetAppDataPath(path);
Категория: PureBasic | Просмотров: 1807 | Добавил: pop | Рейтинг: 0.0/0

Поблагодарить автора



Комментарии