Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Превратить консольное приложение на C++ в DLL для использования в C# - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Базы данных на си http://www.cyberforum.ru/cpp-beginners/thread695544.html
не понимаю в чем ошибка #include <stdio.h> #include <conio.h> #include <string.h> #include <math.h> #define n 3; #define line printf ...
C++ Как объявить 10 значную переменную такой как 9876543210 Какой тип переменной используется для объявления 10 значной переменной такой как 9876543210? пробовал double, но компилятор выдаёт ошибку, для int это слишком большое число. http://www.cyberforum.ru/cpp-beginners/thread695541.html
Псевдокод, данные, тестовые данные C++
необходимо выполнить задание после написания программы: Описать 1. структуру псевдокод программы; 2. данных и связей по данным; 3. взаимодействие (интерфейс) программы с пользователем;...
Вывод содержимого файла C++
Здравствуйте! Проблема в том что не выводит на экран содержимое файла. 1 раз выводит, а второй нет(( и еще надо вывести содержимое в другой файл (например, output.txt) при этом поменяв местами 2...
C++ Написать функции 1 вывода массива на экран http://www.cyberforum.ru/cpp-beginners/thread695530.html
Создать массив на 10 эдементов.Заполнить случайными значениями до 10,написать функции 1 вывода массива на экран. 2 Добовления элемента нового массива в коне.3 добавить новые элементы в начало...
C++ Вызов DialogProc большой проект Win32, в нем добавил формочку, то есть диалог. Вызываю этот диалог так:CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG1), GetDesktopWindow(), NULL); но так как мне... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
13.11.2012, 00:33
Насколько я понимаю, dll это процедурное программирование в чистом виде. Имею ввиду использование:
C++
1
2
3
функция (параметры);
функция (параметры);
функция (параметры);
То есть все функции класса Ocean становятся внешними, а сам класс поэтому превращается в структуру.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifdef BUILD_DLL
   // the dll exports
   #define EXPORT __declspec(dllexport)
#else
   // the exe imports
   #define EXPORT __declspec(dllimport)
#endif
 
struct Ocean {
 int a, b, c, d, e;
};
 
EXPORT void initialize (Ocean*, int, int, int, int, int);
C++
1
2
3
4
5
6
7
8
9
/*A.cpp*/
#include "A.h"
EXPORT void initialize (Ocean* myOcean, int a, int b, int c, int d, int e) {
 myOcean->a= a;
 myOcean->b= b;
 myOcean->c= c;
 myOcean->d= d;
 myOcean->e= e;
}
C++
1
2
3
4
5
6
7
8
9
10
11
#include <windows.h>
#include <stdio.h>
#include "A.h" 
 
int main (){
 Ocean* myOcean= new Ocean;
 initialize (myOcean, 24,70,10,10,10); 
 printf ("+++ %d\n", myOcean->a);
 getchar ();
 return (0);
}
Компилить dll:
C++
1
2
g++ -c -DBUILD_DLL A.cpp
g++ -shared -o A.dll -Wl,--out-implib,libAdll.a A.o
Компилить exe:
C++
1
2
g++ -c B.cpp
g++ -o B.exe B.o -L./ -lAdll
может я в чём-то неправ
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru