Reputation: 4160
I have some c++ classes that I'd like to compile into a dll file. When I am trying to compile the project, I receive an unresolved external symbol error:
- error LNK2019: unresolved symbol _WinMain@16 referenced in function tmainCRTStartup
- fatal error LNK1120: 1 unresolved external
This is what I've done so far:
I just created a new win32 project, selected dll and empty project. Then I copied all h and cpp files into the directory and added them to the project.
Furthermore I added a file "DllMain.cpp" containing this code:
#include <windows.h>
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
Upvotes: 4
Views: 24709
Reputation: 67479
For some reason the project got configured to build a .exe.
But you can easily fix your project. Open the properties dialog and go to "Configuration Properties/General". On the right side locate the "Configuration Type" item and change it from "Application" to "Dynamic Library".
Also keep in mind that you need to change this on all the configurations (i.e. Debug and Release).
Upvotes: 4
Reputation: 36896
When you create a new Win32 Application project, select "Application Settings" in the wizard, and select "DLL" for the application type. It will start with an empty DllMain
.
You say that you did this, but it should not be looking for WinMain
then. To double check you're really building a DLL, look in project settings -> General, and check that:
Upvotes: 3
Reputation: 655
This link may help you out http://msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx also check your linker settings in the project properties dialog box. If you are using additional libraries make sure that their paths are set in the linker tab.
Upvotes: 1