what does __declspec(dllexport) do , when add it before a import function

Viewed 4149

Possible Duplicate:
Windows & C++: extern & __declspec(dllimport)
Why/when is __declspec( dllimport ) not needed?

I want to write a DLL project. This project include several DLLs. They are dependent. I define some macros like follow :

#ifdef  MYDLL_DECL1
    #define  DLL_DECL __declspec(dllexport)
#else
    #define DLL_DECL __declspec(dllimport)
#endif

I defined MYDLL_DECL1...MYDLL_DECLn for each modules. Because I thought if i define the same macro that it wouldn't work . But I really want to define only one macro, and i wrote a testbed. I have two modules. In the second moudle's source file. I write code like follow:

#define  MYDLL_DECL
#include "moudle1.h"
#include "moudle2.h"

If I use the same macro name "MYDLL_DECL" ,for modle1's head file I have defined "MYDLL_DECL", so "DLL_DECL" is equal to '__declspec(dllexport)'. Actually in module2 it should be equal to "__declspec(dllimport)", Because module2 import module1. But I found it worked when I just define a same macro for two module. And I also find that the OpenCV also use this methold to its library

1 Answers
Related