-
cards.dll
I am trying to write a simple (test before I make a complicated) app that takes text as input and draws the card given.
AS draws the ace of spades.
2H draws 2 of hearts.
I found a how to here: http://freespace.virgin.net/james.br...ts/cardtut.htm
I am getting errors.
Here is my code:
Showcarddlg.h
Code:
HMODULE hCardDll;
BOOL InitCardsDll(void);
void *cdtInit;
void *cdtDraw;
void *cdtDrawEx;
void *cdtTerm;
typedef BOOL (WINAPI *pfcdtInit)(int *, int *);
typedef BOOL (WINAPI *pfcdtDraw)(HDC, int x, int y, int card, int type, DWORD color);
typedef BOOL (WINAPI *pfcdtDrawEx)(HDC, int x, int y, int dx, int dy, int card, int type, DWORD color);
typedef BOOL (WINAPI *pfcdtAnimate)(HDC hdc, int cardback, int x, int y, int state);
typedef void (WINAPI *pfcdtTerm) (void);
ShowcardDlg.cpp
Code:
BOOL InitCardsDll(void)
{
hCardDll = LoadLibrary("cards.dll");
if(hCardDll == 0)
return FALSE;
cdtInit = (pfcdtInit) GetProcAddress(hCardDll, "cdtInit");
cdtDraw = (pfcdtDraw) GetProcAddress(hCardDll, "cdtDraw");
cdtDrawEx = (pfcdtDrawEx) GetProcAddress(hCardDll, "cdtDrawExt");
cdtTerm = (pfcdtTerm) GetProcAddress(hCardDll, "cdtTerm");
return TRUE;
}
I call InitCards() in OnInitDialog()
here are the errors I am getting:
showcardDlg.obj : error LNK2005: "struct HINSTANCE__ * hCardDll" (?hCardDll@@3PAUHINSTANCE__@@A) already defined in showcard.obj
showcardDlg.obj : error LNK2005: "void * cdtInit" (?cdtInit@@3PAXA) already defined in showcard.obj
showcardDlg.obj : error LNK2005: "void * cdtDraw" (?cdtDraw@@3PAXA) already defined in showcard.obj
showcardDlg.obj : error LNK2005: "void * cdtDrawEx" (?cdtDrawEx@@3PAXA) already defined in showcard.obj
showcardDlg.obj : error LNK2005: "void * cdtTerm" (?cdtTerm@@3PAXA) already defined in showcard.obj
Any help you could provide would be great.
Edit: I think I figured it out. Looks like I have to move my definitions out of the header file. Because the header file is being picked up my multiple .cpp files. Since these defs are global it is trying to load multiples.