I have a DLL and I would like to use some of its functions.
#include
using namespace std;
extern \"C\" __declspec(dllimport) int Initializ
From your phrasing it is pretty clear you are using Dev Studio some or other version.
In order to implicitly link against a dll, VC++ needs a .lib file, no questions. Without a .lib you can only explicitly load the dll using LoadLibrary and GetProcAddress.
Fortunately import libraries contain nothing other than the dll's exported symbols, so it is perfectly legitimate to simply create a dll project in VC++ that exports the identical symbols, build it, and then use the resulting .lib file to access the target dll.
The trick really is, getting the symbols right: Depending on how the original dll was created there might be some decoration to deal with.
"Initialize" could be exported from a dll in several ways when viewed with dependencywalker
extern "C" __declspec(dllexport) int __cdecl Initialize(...extern "C" __declspec(dllexport) int __stdcall Initialize(...The problem really is the first case - if the calling convention isn't __cdecl (and most dll api's are actually __stdcall - all windows dlls are __stdcall) then you must use a .def file to export the undecorated names.