Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 22:37   #1
Smart
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 19
По умолчанию Экспорт функции def файл

Здравствуйте,хочу экспортировать функцию с помощью .def файла, с помощью extern "C" _declspec..... экспортировал успешно, хочу реализовать теперь другим способом. Вот мои последовательные действия, где накосячил, подскажите пожалуйста, так как в интеренете везде пишется по разному, начиная от имени dll-ки в def файле и заканчивая обращением к функции в самом проекте.

1. Создаю обычный проект console win32.
2. Создаю библиотеку console win32->DLL->Export Symbols
3. В хидаре библиотеке:

/dll.h
#ifndef DLL_H
#define DLL_H

int summa(int,a,int b)

#endif

4.cpp-ник:

/dll.cpp

#include "stdafx.h"
#include "dll.h"
int summa(int a,int b)
{
return a+b;
}

5. Получаю dll.dll и помещаю в папку с проектом
6. Создаю .def файл

/dll.def
LIBRARY "dll.dll"
EXPORTS summa @1 //(пробовал и просто summa без @1)

7. Помещаю dll.def так же в папку с проектом
8. Код самого проекта

#include<isotream>
using namespace std;
inta main()
{
typedef int (*Fu)(int a, int b)
Fu fu1;
HINSTANCE h;
h=LoadLibraryA("dll.dll");
int a=10;
int b=13;
Fu1=(Fu)GetProcAddress(h,"summa"); // (пробовал и GetProcAdress(h,"1") и GetProcAdress(h,"@1"))
cout << Fu1(a,b);
system("PAUSE");
}

Так же интересует вопрос экспортирования класса,а не отдельной функции. Импортировать класс у меня не получилось ни декларирование ни .def файлом.
Спасибо за внимание!




//Вопрос к Админа, по какой причине название темы "Экспортирования функции с помощью .def файла" является некорретным?
Smart вне форума Ответить с цитированием
Старый 10.10.2012, 22:45   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

def файл нужно прописать в свойствах линкера у проекта.

класс через def помоему не экпортируется, ибо не портабельно это в принципе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.10.2012, 22:49   #3
Smart
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 19
По умолчанию

Ты имеешь в виду Link->Input->Module Definition File? и там просто указать название деф файла или что-то более конкретно? А в остальном?

Последний раз редактировалось Smart; 10.10.2012 в 22:53.
Smart вне форума Ответить с цитированием
Старый 10.10.2012, 23:55   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ты имеешь в виду Link->Input->Module Definition File?
да.
помоему раз def в папке с проектом достаточно его имени(вашего дефа) просто.
Цитата:
А в остальном?
а чем?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.10.2012, 00:00   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
класс через def помоему не экпортируется, ибо не портабельно это в принципе.
Експопртируется, метод за методом, в mangled форме... но это - мазохизм.
waleri вне форума Ответить с цитированием
Старый 11.10.2012, 09:03   #6
Smart
Пользователь
 
Регистрация: 05.05.2008
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а чем?
Остальные действия и синтаксис?
Smart вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в csv файл propoker23 Общие вопросы Delphi 1 12.01.2012 01:37
Экспорт функции C++ в библиотеку DLL lebedevmd Фриланс 2 12.04.2011 14:45
Как слинковать .def файл? mike_tihomirov Общие вопросы C/C++ 1 15.02.2010 15:18
Проблема с .def файлом!!! HellStranger Общие вопросы C/C++ 0 17.09.2009 16:39
Экспорт записи в *.dbf файл Galgi БД в Delphi 2 20.02.2008 07:02