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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2017, 09:55   #1
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
Восклицание Ошибка в библиотеке DLL

Добрый день!

Подскажите, пожалуйста. Пытаюсь сделать библиотеку DLL. Но выдает ошибку: "Error 1 error C2491: 'PrintSysDirectories' : definition of dllimport function not allowed"
Помогите, пожалуйста!

HeaderDLL.h
Код:
#pragma once
 
#if !defined(__HEADER_DLL_H__)
#define __HEADER_DLL_H__
 
#ifdef HEADERDLL_EXPORTS
#define HEADERDLL_API __declspec(dllexport)
#else
#define HEADERDLL_API __declspec(dllimport)
#endif
 
#ifdef __cplusplus
extern "C" {
#endif
 
    HEADERDLL_API void PrintSysDirectories(const long csidl[], unsigned long nCount);
 
#ifdef __cplusplus
}
#endif
 
#endif
HeaderDLL.cpp
Код:
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
#include <ShlObj.h>
#include "HeaderDLL.h"
 
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved)
{
 return TRUE;
}
 
 
HEADERDLL_API void PrintSysDirectories(const long csidl[], unsigned long nCount)
{
    TCHAR szBuffer[MAX_PATH + 1];
    
    for (unsigned long i = 0; i < nCount; ++i)
    {
    HRESULT hr = SHGetFolderPath(NULL, csidl[i], NULL, SHGFP_TYPE_CURRENT, szBuffer);
    
    if (S_OK == hr)
    _tprintf(TEXT("%d: %s\n"), i + 1, szBuffer);
    }
}
Maray вне форума Ответить с цитированием
Старый 30.01.2017, 10:35   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

В HeaderDLL.cpp уберите HEADERDLL_API перед void PrintSysDirectories
waleri вне форума Ответить с цитированием
Старый 30.01.2017, 10:36   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так для длл надо задефайнить HEADERDLL_EXPORTS или вы просто скопи-пастили код и не разобрались за чем эти буковки?
p51x вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по библиотеке DBMT.DLL twnordall Visual C++ 0 19.01.2017 17:32
Область видимости в библиотеке (dll) KBO Общие вопросы Delphi 2 19.03.2012 03:30
Breakpoint в библиотеке dll wadzik Общие вопросы Delphi 3 30.12.2011 19:15
Создание своей DLL библиотеке kop Помощь студентам 1 30.10.2011 18:46