请把下面这段C语言代码(32位)编译生成DLL,多谢各位。

无耐的开心 2003-10-09 05:17:26
回复地址: lifupin@163.com

#include
#include
/*作用:从指定端口读入一个字节
参数:portid端口号
返回值:读入的字节*/
int _stdcall Inport(short portid)
{
 return inp(portid);}
 /*作用:向指定端口写入一个字节
 参数:portid端口号*/
 void _stdcall output(short portid,short byte)
 {
  outp(portid,byte);
 }
 /*作用:从指定端口读入一个字节
 参数:portid端口号
 返回值:读入的字节*/
 int _stdcall Inportw(short portid)
 {
  return inpw(portid);}
  /*作用:向指定端口写入一个字节
   参数:portid端口号*/
  void _stdcall Outportw(short portid,short word)
  {
   outpw(portid,(unsigned short) word);
  }


...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WYC2300 2003-10-09
  • 打赏
  • 举报
回复
我还没学过怎么样写DLL。
希望能共同学习
QQ:254734866
rtdb 2003-10-09
  • 打赏
  • 举报
回复
To: cxjddd(战士编程)

哇,佩服,第一个DLL就是HOOK。


To 楼主:
你那个函数outp在32位系统上是无效的,
不能用了。
gyhs 2003-10-09
  • 打赏
  • 举报
回复
我还没学过怎么样写DLL。
希望能共同学习
cxjddd 2003-10-09
  • 打赏
  • 举报
回复
给一个我写的 DLL,这可是我的第一个 DLL 啊!
#include <windows.h>

HHOOK hhkHook = 0;
HINSTANCE hInstance = 0;
HWND hWindow = 0;

#define WM_MY_HOOK (WM_USER + 525)

extern "C"
BOOL APIENTRY
DllMain (HINSTANCE instance, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}

hInstance = instance;

return TRUE;
}

extern "C"
_declspec (dllexport)
LRESULT CALLBACK
MyHookProc (int nCode, WPARAM wParam, LPARAM lParam)
{
if ((nCode < 0) || (nCode != HC_ACTION))
{
return CallNextHookEx (hhkHook, nCode, wParam, lParam);
}

if (hWindow != 0)
PostMessage (hWindow, WM_MY_HOOK, wParam, lParam);
return CallNextHookEx (hhkHook, nCode, wParam, lParam);
}

extern "C"
_declspec (dllexport)
BOOL
installhook ()
{
if (hhkHook != 0)
return FALSE;
if (hInstance == 0)
return FALSE;

hhkHook = SetWindowsHookEx (WH_KEYBOARD_LL, (HOOKPROC)MyHookProc,
hInstance, 0);
if (hhkHook == 0)
return FALSE;
else
return TRUE;
}

extern "C"
_declspec (dllexport)
BOOL
uninstallhook ()
{
if (hhkHook == 0)
return TRUE;
return UnhookWindowsHookEx (hhkHook);
}

extern "C"
_declspec (dllexport)
BOOL
setwindow (HWND hwnd)
{
hWindow = hwnd;
return TRUE;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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