3.使用c语言在windows中写入数据到程序中
[toc]
使用c语言在windows中写入数据到程序中1. C语言中写数据使用赋值符号=代码演示:
12345678910111213141516171819//Messageb.c#include <stdio.h>#include <windows.h>int main(int argc, char** argv){ int i = 666; label: printf("var i vulue is %d\n", i); printf("var i address is 0x%p\n", &i); int* p = &i; printf("var i vulue is %d\n", *p); printf("var i address is 0x%p\n", p); printf("point p address is 0x%p\n", &p); ...
2.使用c语言在windows中读取程序的数据
[toc]
使用c语言在windows中读取程序的数据1. C语言通过指针来获取地址的数据
完整代码:
123456789101112131415//Message.c#include <stdio.h>int main(int argc, char** argv){ int i = 666; printf("var i vulue is %d\n", i); printf("var i address is 0x%p\n", &i); int *p = &i; printf("var i vulue is %d\n", *p); printf("var i address is 0x%p\n", p); printf("point p address is 0x%p\n", &p); getchar(); return 0;}
为了方便测试,在 ...
1.使用c语言开发第一个windows程序
[toc]
使用c语言开发第一个windows程序1. C语言使用标准库函数c语言中使用标准库只需在源文件中包含对应的头文件,以下是一个代码示例
1234567#include <stdio.h> int main(int argc,char** argv) { printf("print function from <stdio.h>\n"); return 0; }
2.C语言使用Windows函数调用Windows平台的相关函数需要包含相关头文件,windows.h里有一些基本的函数,以下为完整代码,功能为弹出一个消息框
12345678#include <stdio.h>#include <windows.h> int main(int argc,char** argv) { printf("print function from <stdio.h>\n"); MessageBoxA(0,"Messag ...
C语言将驱动打包到exe程序中
[toc]
C语言将驱动文件打包到exe程序中1.使用WinHex将二进制文件复制在WinHex选中编辑->复制选快->c源码
2.将二进制代码粘贴到c语言源码中3.编写c语言代码写入文件源码
123456789101112131415161718192021222324252627282930//main.c#include <windows.h>#include <stdio.h>#include "DriverBuffer.h"#define DRIVER_FILE_NAME L"DEMO.sys"#define DRIVER_FILE_PATH L"D:\\Users\\3\\Desktop\\DEMO.sys"DWORD WriteDriverFile(WCHAR* DriverFilePath){ HANDLE hFile = CreateFileW(DriverFilePath, GENERIC_ALL,FILE_SHARE_READ | FILE_SHARE_ ...
win32程序中使用Dialog作为主窗口
[toc]
1.在main函数中创建Button1234567891011121314151617181920212223242526#include <windows.h>int main(int argc, char* argv[]) { HWND hwnd = GetConsoleWindow(); //Create a Button HWND hwndButton = CreateWindowW( L"BUTTON", // Predefined class; Unicode assumed L"OK", // Button text WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // Styles 10, // x position 10, // y position 100, ...
10.cmake使用不同编译器
使用不同编译器强制使用命令行选择编译器123456789101112131415161718# 强制使用 Clangcmake -S . -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang# 强制使用 GCC (确保已经在环境变量中)cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++# 强制使用 msvc# 方式 A:使用默认的 Visual Studio 生成器(生成 .sln 工程)cmake -S . -B build_msvc -G "Visual Studio 17 2022" -A x64# 方式 B:使用 Ninja 生成器(更推荐,速度更快,但需要进入“开发者命令提示符”)cmake -G "Ninja" -S . -B build_msvc -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.ex ...
9.cmake编译静态库与动态库
1使用cmake编译静态库项目结构12345678910111213│ CMakeLists.txt│├─out│ └─build│ └─x64-debug├─ProjectA│ CMaKeLists.txt│ main.cpp│└─ProjectB_lib CMakeLists.txt ProjectB.cpp ProjectB.h
根目录文件CMakeLists.txt1234567891011121314151617181920cmake_minimum_required(VERSION 3.15)project(MultiProjectSolution)# --- 1. MSVC 特殊优化配置 ---if (MSVC) # 开启多核并行编译 add_compile_options(/MP) # 智能调试信息格式策略 (CMP0141) if (POLICY CMP0141) cmake_policy(SET CMP0141 NEW) set( ...
8.cmake使用vcpkg在vs2022中链接gtest库
gtest在vs2022中使用cmake添加vcpkg管理的gtest库1.在CMakePresets.json中添加配置
123"cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "C:/D/test/CC++/cc++lib/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake"}
项目结构1234567891011121314151617181920│ CMakeLists.txt│ CMakePresets.json│├─CMakeProject2│ CMakeLists.txt│ CMakeProject2.cpp│ MyClass.cpp│ MyClass.h│├─CMakeProject3│ CMakeLists.txt│ CMakeProject3.cpp│├─out│ └─build└─unit_tests CMakeLists.txt ...
7.cmake使用vcpkg链接gtest库
gtest1.windows上使用vcpkg下载gtest动态库与静态库1.gtest动态库1.\vcpkg.exe install gtest:x64-windows
2.下载安装git bash环境2.cmake使用vcpkg管理的raylib库1.项目结构1234│ build.sh│ CMakeLists.txt│ test_example.cpp
2.test_example.cpp123456789101112131415161718192021222324252627282930313233343536#include <gtest/gtest.h>#include <iostream>// 对应 TEST_MODULE_INITIALIZE:GTest 使用全局环境或简单的函数// 如果只是打印,可以直接在测试用例里写,或者使用下面的全局环境class MyEnvironment : public ::testing::Environment {public: void SetUp() override { ...
6.cmake使用vcpkg管理的raylib库
raylib1.windows上使用vcpkg下载raylib动态库与静态库1.raylib动态库1vcpkg install raylib:x64-windows
2.raylib静态库1vcpkg install raylib:x64-windows-static
3.raygui库1vcpkg install raygui:x64-windows-static
4.安装最新版而非稳定版123456789git -C /c/D/test/CC++/cc++lib/vcpkg/vcpkg pull# 1. 先卸载旧版本(防止链接冲突)./vcpkg remove raylib:x64-windows# 2. 安装最新的开发版 --head 参数会尝试下载最新的 master 分支./vcpkg install raylib:x64-windows --head# 3. 重新集成(可选,通常不需要再次执行,但执行一下更稳)./vcpkg integrate install
5.下载安装git bash环境1.cmake使用vcpkg管理的raylib库1.项目结构12345 ...
