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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2014, 19:52   #1
X-Key
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 33
По умолчанию Создание DLL

Код:
#define EXPORT_API __declspec(dllexport)
#include <Windows.h>

extern "C"
{
  char* EXPORT_API PointInputValue ()
  {
    char* Value;
    if( OpenClipboard(NULL) ) //открываем буфер обмена
    {
  HANDLE hData = GetClipboardData(CF_TEXT); //извлекаем текст из буфера обмена
  char* nBuffer = (char*)GlobalLock(hData); //блокируем память
      GlobalUnlock(hData); //разблокируем память
      CloseClipboard(); //закрываем буфер обмена
      Value = nBuffer;
    }
    return Value;
  }
}
Не хочет экспортировать...

Пишет мол:

Цитата:
Input_values_head.cpp(8): error C2059: синтаксическая ошибка: __declspec(dllexport)
1>Input_values_head.cpp(9): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>Input_values_head.cpp(9): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
Все хорошо экспортируется, если тип метода не char*
X-Key вне форума Ответить с цитированием
Старый 20.12.2014, 20:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А void* экспортирует?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2014, 20:08   #3
X-Key
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 33
По умолчанию

нет.. тоже самое

Может попробовать отделить реализацию?

Последний раз редактировалось Stilet; 20.12.2014 в 22:43.
X-Key вне форума Ответить с цитированием
Старый 20.12.2014, 20:30   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

отделите, оно поидее так и работает.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2014, 20:40   #5
X-Key
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 33
По умолчанию

Отделил, пошло как по маслу.
X-Key вне форума Ответить с цитированием
Старый 20.12.2014, 20:46   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,342
По умолчанию

А если поменять местами:
EXPORT_API char*...
waleri вне форума Ответить с цитированием
Старый 20.12.2014, 20:57   #7
X-Key
Пользователь
 
Регистрация: 03.10.2012
Сообщений: 33
По умолчанию

Цитата:
А если поменять местами:
EXPORT_API char*...
Да, так правильно, но все-равно без отделения были ошибки.

Вопрос:
Например мы пишем dll, в реализации используются другие либы и сторонние сорцы, полученная при экспорте dll'весит мало.. То есть, надо и другие dll вместе с той которую экспортировали использовать? Извиняюсь, ибо я еще зеленый на тему dll.

Цитата:
Цитата:
А если поменять местами:
EXPORT_API char*...
Да, так правильно, но все-равно без отделения были ошибки.
Моя невнимательность... все работает и без отделения.

И в чем разница между

Код:
EXPORT_API char* PointInputValue ();
И
Код:
	 int EXPORT_API Value();

Последний раз редактировалось Stilet; 20.12.2014 в 23:25.
X-Key вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание dll MisterMyth1992 Помощь студентам 0 20.04.2014 19:59
Создание dll Kverter Visual C++ 1 02.12.2013 10:32
создание dll VadEr Помощь студентам 2 13.05.2011 13:28
Создание .dll Skif-F Общие вопросы .NET 4 10.08.2010 10:11
Создание dll John_chek Общие вопросы Delphi 3 24.09.2007 14:26