如何将VC的dll转为GCC中使用???

hangjier 2004-09-18 11:26:56
如何将下面的连接中的东东用在Dev-c++中???

http://www.vchelp.net/vchelp/file2004_3/skinload.asp?type_id=15&class_id=1&cata_id=1&article_id=997&search_term=

我已用pexports.exe 和 dlltool.exe 转换为 *.a文件,但编译后还是有以下错误。请高手指导。

[Linker error] undefined reference to `InitSkinLoad(unsigned long)
[Linker error] undefined reference to `LoadSkin(char *)
[Linker error] undefined reference to `ExitSkinLoad(void)

测试代码如下:
#include <windows.h>
#include "SkinLoadLib.h"
HINSTANCE m_hDllSkin;

BOOL APIENTRY MainDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
POINT MousePoint;
HWND hWnd;
switch(message)
{
case WM_INITDIALOG:
SetWindowPos(hDlg,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
InitSkinLoad(GetCurrentThreadId());
LoadSkin("xp_bule.skin");
if(m_hDllSkin != NULL)
{
typedef int (* INITSKIN)(DWORD dwThreadId);
typedef bool (* LOADSKIN)(char* cPath);
INITSKIN pInitSkin = (INITSKIN)GetProcAddress(m_hDllSkin,"InitSkinLoad");
LOADSKIN pLoadSkin = (LOADSKIN)GetProcAddress(m_hDllSkin,"LoadSkin");
if(pInitSkin != NULL && pLoadSkin != NULL)
{
(*pInitSkin)(GetCurrentThreadId());
(*pLoadSkin)("xp_bule.skin");
}
}

return(TRUE);
case WM_CLOSE:

EndDialog(hDlg,TRUE);
return(TRUE);

case WM_DESTROY:
{

if(m_hDllSkin != NULL)
{
typedef bool (* EXITSKIN)();
EXITSKIN pExitSkin = (EXITSKIN)GetProcAddress(m_hDllSkin,"ExitSkin");
if(pExitSkin != NULL)
{
(*pExitSkin)();
}
FreeLibrary(m_hDllSkin);

}

ExitSkinLoad();
return(true);
}
case WM_COMMAND:
{ if(LOWORD(wParam)== IDC_QUIT)
EndDialog(hDlg,TRUE);

HWND WndHandle;//定义句柄类型变量


}
}
return (FALSE);
}



int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hInstPrev,LPSTR szcmdlind,int nCmdShow)
{
m_hDllSkin = LoadLibrary("SkinLoad.dll");
DialogBox (hInst,MAKEINTRESOURCE(IDD_MAINDLG),NULL,(DLGPROC)MainDlgProc);

return(0);
}
...全文
118 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
daylove 2004-09-21
  • 打赏
  • 举报
回复
你不可以通过dll中的接口来调用吗?我想应该可以的吧,只要知道了dll的调用方式,应该可以使用的

64,663

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧