Unresolved external symbol

Posted by kriau on Stack Overflow See other posts from Stack Overflow or by kriau
Published on 2010-03-19T23:22:22Z Indexed on 2010/03/19 23:31 UTC
Read the original article Hit count: 214

Filed under:
|

I have two WIN32 DLL projects in the solution, main.dll should call a function in mgn.dll.

mgn.dll has mgn.h header file:

#ifdef MGN_EXPORTS
#define MGN_API __declspec(dllexport)
#else
#define MGN_API __declspec(dllimport)
#endif

extern "C" bool MGN_API AttachMGN(void);

and mgn.cpp source file:

#include "stdafx.h"
#include "mgn.h"

MGN_API bool AttachMGN(void)
{
...
}

main.dll calls AttachMGN function from one of the source file:

#include "stdafx.h"
#include "..\mgn\mgn.h"

bool CreateClient()
{
    return ::AttachMGN();
}

mgn.dll compiles successfully. main.dll doesn't show any errors in VS text editor, I can navigate using "Go To Definition" function. However during build I get the error:

error LNK2019: unresolved external symbol _imp_AttachMGN referenced in function "bool __cdecl CreateClient(void)" (?CreateClient@@AW4XZ)

Both DLLs compile into the same folder. DependencyWalker shows the function AttachMGN as exported. Main project has a dependency set to Mgn project, if that matters.

I believe that I simply have overlooked something....

Thanks in advance.

© Stack Overflow or respective owner

Related posts about dllexport

Related posts about dllimport