标签:表示 技术分享 lib 自动 win 调用 定义 point extern
1.vs2013动态库问题
(1)一般为了节省内存,动态库一般是被别的程序调用,
(2)动态库查找的方式,先在当前文件夹(程序运行的文件夹)中找,若没有,当你的你的程序是64位时,它会去system32下面查找,当你的你的程序是32位时,它会去syswos64下面查找
(3)动态库的加载HMODULE handle =::LoadLibrary(L"Win32Project1.dll");
2. MessageBox(NULL, L"ZHAO111", L"111", MB_OK);
3.当vs中解决方案资源管理器中有动态库和其他项目时,这是不能用F5去调试,他会报这个错误:
这是因为动态库一般不能自动去运行,它一般是让别的程序加载它,可以右键把其他项目设置成“设为启动项目”,然后在点F5
4. 一般动态库加载的2中方式
(1)动态加载:
1)加载动态库,获取句柄 HMODULE handle =::LoadLibrary(L"DllExportDemo.dll");
2) typedef int(*FUNC) (void); // 定义函数指针
FUNC func = (FUNC)::GetProcAddress(handle, "fnDllExportDemo");
cout << func() << endl; //打印调用动态库的结果
3)函数声明前加 extern "C" 以表示用C编译
(2)静态加载
1)把动态库的头文件放到项目中,并把生成的libk文件放到项目中
2).CPP中包含头文件
3)包含要使用的库
4)直接调动态库中的方法
5 让别人QQ无法登陆:不断循环去检测桌面上的QQ窗口,如果有,则当鼠标放上去的时候,QQ窗口隐藏,
while (true)
{
//获取QQ窗口的句柄,TXGuiFoundation:表示QQ窗口类,“”QQ” 表示窗口标题是QQ
HWND handQQ = FindWindow(L"TXGuiFoundation", L"QQ");
//抓取鼠标位置
POINT pos = { 0 };
GetCursorPos(&pos);
//获取QQ窗口的位置
RECT rect = { 0 };
GetWindowRect(handQQ, &rect);
if (pos.x > rect.left && pos.x <rect.right && pos.y >rect.top && pos.y < rect.bottom)
{
ShowWindow(handQQ, SW_HIDE);
}
else
{
ShowWindow(handQQ, SW_SHOW);
}
}
标签:表示 技术分享 lib 自动 win 调用 定义 point extern
原文地址:https://www.cnblogs.com/zwj-199306231519/p/9038351.html