A Function Declared Dllimport May Not Be Defined -

If you then define the same function (write its body) in the same source file or a linked object file, you are contradicting that directive. The compiler rightly complains because it doesn't know whether to treat the function as imported from a DLL or as a local function. Problematic code (in an executable project):

— using the same header for both DLL and client without proper conditionals: a function declared dllimport may not be defined

// myfile.cpp __declspec(dllimport) void myFunction(); // says "import me" void myFunction() { // ERROR: defined here // implementation } If you then define the same function (write

The error message occurs in Microsoft C++ when you declare a function with __declspec(dllimport) but then attempt to provide a definition (implementation) for that function in the same module (usually a .cpp file being compiled into an executable or DLL). Why does this happen? __declspec(dllimport) tells the compiler: "This function exists in a different DLL — do not generate code for it here; instead, generate a call via the import library." Why does this happen