#ifndef MainH
#define MainH
namespace TMHook
{
//---------------------------------------------------------------------------
#ifdef __DLL__
#define DLL_EI __declspec(dllexport)
#else
#define DLL_EI __declspec(dllimport)
#endif
#ifdef __cplusplus
#define CALL_CONV extern "C"
#else
#define CALL_CONV
#endif
//---------------------------------------------------------------------------
CALL_CONV DLL_EI LRESULT __stdcall CALLBACK TMKbdProc(int code, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
} //end of namespace TMHook
using namespace TMHook;
#endif
BCB 2006 проблема с DLL
Проблема проста и похожа на очередной баг в новом билдере.
В проекте динамической библиотеки билдер не определяет макрос __DLL__, хотя должен (__DLL__ является предопределенным для DLL).
В BCB 6 с этим все в порядке....
Может кто сталкивался....
BCB 2006 + 2-й update + все 6 hotfix'ов
Проблема проста и похожа на очередной баг в новом билдере.
В проекте динамической библиотеки билдер не определяет макрос __DLL__, хотя должен (__DLL__ является предопределенным для DLL).
В BCB 6 с этим все в порядке....
Может кто сталкивался....
BCB 2006 + 2-й update + все 6 hotfix'ов[/QUOTE]
А че без этого макроса плохо живется?
Цитата:
А че без этого макроса плохо живется?
Не то, что плохо.... бывает полезно, например приведенный ниже заголовочный файл можно использовать в DLL для экспорта функции, а в EXE для импорта.
Код:
Так в чем проблема? Что этот код не работает?
В том и проблема, что для проекта DLL билдер почему-то не определяет __DLL__, и функция не экспортируется, ибо DLL_EI получается равным __declspec(dllimport).
Конечно можно в main.cpp сделать так:
Код:
#define __DLL__
include "main.h"
...
include "main.h"
...
Но это гнило...
PS чет не встречал я его нигде :(
А вот __DLL__ - предопределенный макрос билдера
#if defined(_MSC_VER)
# if defined(_WINDLL) && !defined(__DLL__)
# define __DLL__ 1
# endif
# if !defined(_export)
# define _export __export
# endif
#endif
определен этот DLL
а #include <windows.h> юзаешь ?
только вот для предопределенных макросов не нужны никакие инклуды, это как __FILE__, __LINE__, __DATE__, они просто особым образом обрабатываются компилятором.... как будто для них был #define, но никакой #define не нужен
Файла stdwind.h у меня ваще нет, но в любом случае судя по всему тот текст для внутренних заморочек...
Нужны и они юзаются, иначе ничего работать не будет