首页 > TAG信息列表 > winAPI
编译器平台技术路线选择
最近在研究gnu和msvc在win32平台上的应用,查了资料也请教了一下别人。现结论如下: 1.msvc理所当然在win平台上支持最广泛:winAPI(sdk),MFC封装winAPI库及其他VC++功能。 2.gnu在win平台上缺了MFC封装winAPI库,需要学习winAPI。 因为winAPI是用c语言写的,c语言是通用的,所有编译器编译的dDelphi WinAPI SetLayeredWindowAttributes-设置分层窗口的不透明度和透明度颜色关键点
Delphi WinAPI SetLayeredWindowAttributes-设置分层窗口的不透明度和透明度颜色关键点 头文件:winuser.h 原型: BOOL SetLayeredWindowAttributes( [in] HWND hwnd, //分层窗口的句柄。通过在使用CreateWindowEx函数创建窗口时指定WS_EX_layered,或在创建窗口后很久通过SetWMFC 基础入门
windows底层 API 是由C语言写的,而MFC则是在此基础上通过C++进行了封装。 要想利用MFC进行编程,那么就得从main方法开始 MFC的main函数C的写法是 温馨小提示:函数变量名如果带有p的一般都是指针,入参的时候的传地址 #include <Windows.h> int WINAPI WinMain(HINSTANCE hInstancC# 中动态设定屏幕的显示方式和分辨率
在Windows系统中想要通过代码动态设定屏幕的显示方式和分辨率,就需要调用windows提供的API,不同的Windows系统,API可能会有点不一样,但大体上相同。要实现这个功能需要使用win32 API 中的EnumDisplaySettings,ChangeDisplaySettings 这两个函数。 1.EnumDisplaySettingDelphi WinAPI MonitorFromWindow - 检索与指定窗口的边框具有最大相交面积的显示监视器的句柄。
Delphi WinAPI MonitorFromWindow - 检索与指定窗口的边框具有最大相交面积的显示监视器的句柄。 MonitorFromWindow 函数 检索与指定窗口的边框具有最大相交面积的显示监视器的句柄。 原型: HMONITOR MonitorFromWindow( HWND hwnd, DWORD dwFlags ); 参数: hwnd_WinAPI创建窗口大致格式(笔记)
一、流程 1定义入口函数WinMain() 2创建一个窗口: a)设计窗口类WNDCLASS(给成员变量赋值) b)注册窗口类 c)创建窗口类 d)显示和更新窗口 3消息循环 4窗口过程函数 二、WinMain() //WINAPI:修饰函数,规定函数参数入栈使用Visual C++高版本的XP支持生成带boost执行文件在XP上报kernel32缺函数
典型症状 使用Visual Studio 2019,安装“对VS 2017 (v141)工具的C++ Windows XP支持”后,用该v141_xp平台工具集生成的执行文件在Windows XP SP3下仍无法运行,Release版本报错,Debug版本提示“在KERNEL32.DLL中找不到xxxxxx”,典型的找不到的有InitializeSRWLock或InitializeCriticalSerust 调用windows api
代码: #[cfg(windows)] extern crate winapi; use std::io::Error; #[cfg(windows)] fn print_message(msg: &str) -> Result<i32, Error> { use std::ffi::OsStr; use std::iter::once; use std::os::windows::ffi::OsStrExt; use std::ptr::nuDelphi WinAPI GetClientRect - 检索窗口客户端区域的坐标。
Delphi WinAPI GetClientRect - 检索窗口客户端区域的坐标。 描述:客户机坐标指定客户机区域的左上角和右下角。由于客户端坐标相对于窗口客户端区域的左上角,因此左上角的坐标为(0,0)。 原型: BOOL GetClientRect( HWND hWnd, LPRECT lpRect ); 参数: hWnd(类型:HWND):要检索其坐TranslateMessage(&msg); WINAPI
TranslateMessage(&msg); TranslateMessage是用来把快捷键消息转换为字符消息,并将转换后的新消息投递到调用线程的消息队列中。 由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。字符消息被投递到调用线程的消编译plog错误
需要更改一致性 1>D:\testApps\testApps\include\3rdpart\ZLToolKit\src\Thread\ThreadPool.h(107,27): warning C4018: “<”: 有符号/无符号不匹配 1>D:\testApps\testApps\include\3rdpart\plog\WinApi.h(112,46): error C2116: “InitializeCriticalSection”: 不同声明之间的Windows多线程——临界区、事件、互斥量、信号量详解加代码
文章目录 一、【临界区】 【进程进入临界区的调度原则】 二、【事件】 三、【互斥量】 四、【信号量(Semaphores)】 小结 一、【临界区】 每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界 资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临C语言利用WinAPI控制黑窗(控制台窗口)光标位置
直接上代码: #include <stdio.h> #include <stdlib.h> #include <Windows.h> //设置光标位置 void SetPos(int x, int y) { COORD point={x, y}; //光标要设置的位置x,y HANDLE HOutput = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出句柄 SetConsolDelphi WinAPI InternetGetConnectedState(wininet.h) - 检索本地系统的连接状态。
Delphi WinAPI InternetGetConnectedState(wininet.h) - 检索本地系统的连接状态。 引用单元: uses wininet; 函数原型: function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall; 参数: lpdwFlags 指向接收连接描述的变量的指针。即使Delphi WinAPI IsNetworkAlive(sensapi.h) - 确定本地系统是否连接到网络,并标识网络连接的类型
Delphi WinAPI IsNetworkAlive(sensapi.h) - 确定本地系统是否连接到网络,并标识网络连接的类型 IsNetworkAlive函数 确定本地系统是否连接到网络,并标识网络连接的类型,例如LAN、WAN或两者。 语法原型: BOOL IsNetworkAlive( LPDWORD lpdwFlags ); 参数: NETWORK_ALIVE_LAN //Delphi WinAPI InetIsOffline function (intshcut.h) - 确定系统是否连接到Internet
Delphi WinAPI InetIsOffline function (intshcut.h) - 确定系统是否连接到Internet 语法原型: INTSHCUTAPI BOOL InetIsOffline( DWORD dwFlags ); 参数: 类型:DWORD。函数的输入标志。必须将其设置为零。 返回值: 如果本地系统当前未连接到Internet,则返回True。如果本.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案
在NET(C#)中,使用SendKeys模拟按键时,有些情况操作不生效。通过C#调用WinAPI实现的替代的方案模拟按键可以解决。本文主要介绍通过C#调用WinAPI实现模拟按键的方法及示例代码。 原文地址:.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案WinAPI: waveOutSetPitch - 设置输出设备的音调设置(音高的倍数值)
WinAPI: waveOutSetPitch - 设置输出设备的音调设置(音高的倍数值) 提示: 参数 dwPitch 虽然是 4 字节的正整数, 但表示的是个小数; 两个高位表示整数部分, 两个低位表示小数部分; $8000 表示一半, $4000 表示四分之一; 譬如: $00010000 表示 1.0, 说明音高没变; $000F8000WinAPI: waveOutRestart - 重新启动一个被暂停的输出设备
WinAPI: waveOutRestart - 重新启动一个被暂停的输出设备 提示: 当输出设备未暂停时调用该函数无效, 但也返回 0 //声明: waveOutRestart( hWaveOut: HWAVEOUT {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无WinAPI: waveOutReset - 重置输出
WinAPI: waveOutReset - 重置输出 提示: 函数会终止输入, 位置清0; 放弃未处理的缓冲区并返回给程序. //声明: waveOutReset( hWaveOut: HWAVEOUT {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效} MMSYSERRWinAPI: waveOutPrepareHeader - 准备一个波形数据块用于播放
WinAPI: waveOutPrepareHeader - 准备一个波形数据块用于播放 提示: 必须调用 GlobalAlloc 给 TWaveHdr 和其中的 lpData 指向的缓冲区分配内存(使用 GMEM_MOVEABLE、GMEM_SHARE), 并用 GlobalLock 锁定. //声明: waveOutPrepareHeader( hWaveOut: HWAVEOUT; {设备句WinAPI: waveOutPause - 暂停播放
WinAPI: waveOutPause - 暂停播放 提示: 暂停后会保存当前位置, 可以用 waveOutRestart 从当前位置恢复播放. //声明: waveOutPause( hWaveOut: HWAVEOUT {设备句柄} ): MMRESULT; {成功返回 0; 可能的错误值见下:} MMSYSERR_INVALHANDLE = 5; {设备句柄无效}WinAPI: waveOutOpen - 打开波形输出设备
WinAPI: waveOutOpen - 打开波形输出设备 提示: 因为其中的回调函数是在中断时间内访问的, 必须在 DLL 中; 要访问的数据都必须是在固定的数据段中; 除了 PostMessage timeGetSystemTime timeGetTime timeSetEvent timeKillEvent midiOutShortMsg midiOutLongMsg OutputDebuWinAPI: SetWindowText - 设置窗口标题
WinAPI: SetWindowText - 设置窗口标题 //声明: SetWindowText( hWnd: HWND; {窗口句柄} lpString: PChar {新标题串指针} ): BOOL; //举例: var s: string; begin s := '新标题'; SetWindowText(Handle, PAnsiChar(s)); end; posted on 2008-02-WinAPI: GetDesktopWindow - 返回桌面窗口的句柄
WinAPI: GetDesktopWindow - 返回桌面窗口的句柄 //声明: GetDesktopWindow: HWND; {无参数; 返回桌面窗口的句柄} //举例: var h: HWND; begin h := GetDesktopWindow; ShowMessage(IntToStr(h)); end; posted on 2008-02-07 10:26 万一 阅读(6457)