简 述: 使用 C++ / Qt 偶尔会遇到需要设置一些属性,在此记录一番,方便下次时候。

// C++ 标志位
flages & WS_POPUP                         // 检查一个标志位
flages |= WS_POPUP                        // 设置一个标志位
flages &= ~(WS_POPUP | WS_SYSMENU)        // 除去多个标志位
    
// QT 标志位, 除了上面之外,还可用此函数
setWindowFlags(Qt::FramelessWindowHint, true);     // 开启此属性 
setWindowFlags(Qt::FramelessWindowHint, false);    // 关闭此属性

工程经验

简 述:std::vector 中的元素进行去重,其中元素为自定义结构体类型。提供三种思路,并且附上详细示例和分析。关键词内容:

  1. C++ std::unique 函数去重,却导致的 std::vector 发生改变(遇内存泄漏)
  2. c++ std::vector 利用 std::set 去重(自定义结构体创建 set 对象的方法)
  3. 自定义结构体在 sortunique比较 / 等于 函数书写(重载、函数、函数对象;严格弱序、相等)
Visual StudioC++11C++17

**简 述: ** CMake 设置 Target 输出目录和后缀名

set(EXECUTABLE_OUTPUT_PATH                      "xxx/path")        		# 可执行文件的输出目录
set(LIBRARY_OUTPUT_PATH                         "xxx/path")        		#    库文件的输出目录

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG        "xxx/path")        		# debug   可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE      "xxx/path")        		# release 可执行文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG        "xxx/path")       		# debug      库文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE      "xxx/path")       		# release    库文件的输出目录
set(CMAKE_DEBUG_POSTFIX                         "xxx/path")       		# debug        库文件的后缀名
set(CMAKE_RELEASE_POSTFIX                       "xxx/path")       		# release      库文件的后缀名

set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d")     # debug      可执行文件的后缀名
set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")   # release   可执行文件的后缀名

简 述: Windows 编程中常见的一些类型意义、区别和讲解定义

  1. PVOID 和 LPVOID
  2. LPSTR / LPCSTR / LPTSTR / LPCTSTR / LPWSTR / LPCWSTR
  3. HWND / HANDLE / HMODULE / HINSTANCE

辨别区分标志

  • L –> long;WIN32 下 long 和 int 长度一样。 故 L 和 LP 无区别
  • C –> const
  • T –> 通用版本,依据 UNICODE 时候被定义,确定使用 A 还是 W 版本的函数、或字符集。
  • STR –> string 字符串
  • PTR –> ptr 指针

Windows 编程