Jason
Jason

Reputation: 3307

How to use functions exported from DLL in C++?

I create two projects in VC++ Express 2010, one is DLLTest, the other is CODETest.

In DLLTest, declare and define a function func() as follows:

__declspec(dllexport) void  func() {...};

Build DLLTest project successfully, DLLTest.dll and DLLTest.lib files created.

In CODETest, i want to use the exported function as follows:

#include "DLLTest.h"
int main()
{
    ...
    func();
    ...
    return 0;
}

Error occurs when build CODETest project--->"unresolved external symbol "void __cdecl letterList(void)" , but when i add DLLTest.lib into directory of CODETest project, build process successfully.

I dont know why? Thanks for help.

Upvotes: 0

Views: 238

Answers (1)

Hans Passant
Hans Passant

Reputation: 942255

This seems all pretty unlikely, especially the part where "func" transformed into "letterList". Nevertheless, you have to tell the linker to also link the import library of the DLL so that it can resolve identifiers that are imported from that DLL. The easiest way to do that in MSVC is:

#include "DLLTest.h"
#pragma comment(lib, "dlltest.lib")

in CodeTest.cpp. The #pragma does the same thing as the linker's Additional Dependencies setting.

Upvotes: 2

Related Questions