VC++學習(1)——環境準備,參考文檔等,初步入門VC++

在這里插入圖片描述

目錄

  • 引出
  • 環境準備,參考文檔
  • 第一講 初步入門
    • 鍵盤按下的消息
    • 鼠標左鍵按下
    • 報錯
    • 源碼
    • 新建一個工程
  • 總結

引出

VC++學習(1)——環境準備,參考文檔等,初步入門VC++

C++是一門編程語言,他的語法標準和語言特性是全球統一的

VC++是微軟在C++語言基礎上加入了自己公司擴展的一些東西

VC++是基于微軟開發的編譯器系統(例如Visual C++ 6.0編譯系統,visual studio)和windows操作系統,也就是說你離開微軟的編譯環境是沒有辦法進行VC++開發的

VC++可以簡單的視為 :

C++語言+微軟擴展的語法規則+微軟擴展的功能特性+微軟自己開發的編譯環境+windows操作系統 的一個混雜的復合體


環境準備,參考文檔

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

安裝好的VC++

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

msdn參考文檔

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

選擇SDK

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

教材對應的視頻和源代碼

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

flash文件打不開問題

https://github.com/Mzying2001/CefFlashBrowser/releases

https://www.bilibili.com/list/ml847383748?oid=31626251&bvid=BV1AW411y7ad&p=3

第一講 初步入門

比如加入一個程序變量

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

設置一個斷點,鼠標右鍵,加入斷點

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

采用調試運行F5快捷鍵,或者點擊圖示圖標

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

程序運行的時候,接收到了命令行參數

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

點擊圖示按鈕,可以停止程序調試

在這里插入圖片描述

程序的圖標

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

去掉最小化窗口的按鈕

WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

關于窗體的位置

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

鍵盤按下的消息

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

鼠標左鍵按下

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

報錯

LINK : fatal error LNK1168: cannot open Debug/WinMain.exe for writing

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

源碼

#include <windows.h>
#include <stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameterLPARAM lParam   // second message parameter
);int WINAPI WinMain(HINSTANCE hInstance,      // handle to current instanceHINSTANCE hPrevInstance,  // handle to previous instanceLPSTR lpCmdLine,          // command lineint nCmdShow              // show state
)
{// 1.設置了一個窗口,定義窗口的一些信息WNDCLASS wndcls; // 窗口實例wndcls.cbClsExtra=0; // 窗口附加內存空間,通常設置為0wndcls.cbWndExtra=0; // 通常用不上,設置為0即可// 進行強制類型轉換wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); // 窗口的背景顏色wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); // 光標句柄,這里光標就是十字 crosswndcls.hIcon=LoadIcon(NULL,IDI_ERROR); // 圖標句柄,這里就是一個errorwndcls.hInstance=hInstance; // 代表當前應用程序的實例號wndcls.lpfnWndProc=WinSunProc; // 回調函數wndcls.lpszClassName="sunxin2006"; // 類的名字wndcls.lpszMenuName=NULL; // 沒有菜單wndcls.style=CS_HREDRAW | CS_VREDRAW; // 水平和垂直坐標變化,窗口重畫RegisterClass(&wndcls); // 注冊窗口類,把窗口類的指針給他HWND hwnd; // 窗口的句柄// 注冊的類名,WS_OVERLAPPEDWINDOW同時有了最大化,最小化按鈕等hwnd=CreateWindow("sunxin2006","跟著大佬學習VC++",WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX /*& ~WS_MINIMIZEBOX */,0,0,600,400,NULL,NULL,hInstance,NULL);// 顯示窗口,正常顯示normalShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);// 消息隊列MSG msg;while(GetMessage(&msg,NULL,0,0)) // 0表示所有信息都感興趣{// 按鍵的按下和抬起,轉化成WM_CHAR,放到消息隊列中TranslateMessage(&msg);// 將消息路由給操作系統,操作系統給wndcls.lpfnWndProc=WinSunProc; // 回調函數進行處理DispatchMessage(&msg);}return msg.wParam;
}// 回調函數
LRESULT CALLBACK WinSunProc(HWND hwnd,      // handle to windowUINT uMsg,      // message identifierWPARAM wParam,  // first message parameter 都是整數LPARAM lParam   // second message parameter
)
{switch(uMsg){case WM_CHAR: // 用戶按下了按鍵char szChar[20];// sprintf,格式化文本放到字符數組中sprintf(szChar,"char code is %d",wParam);MessageBox(hwnd,szChar,"char",MB_YESNO);break;case WM_LBUTTONDOWN:MessageBox(hwnd,"mouse clicked","message",0);HDC hdc;// 在哪里畫圖hdc=GetDC(hwnd);// 參數:在哪里,位置,輸入文字,文字長度TextOut(hdc,0,50,"程序員之家",strlen("程序員之家"));// 釋放DC,ReleaseDC(hwnd,hdc);break;// 窗口大小發生變化case WM_PAINT:HDC hDC;PAINTSTRUCT ps;// BeginPaint 和 EndPaint 是一對,只能用在WM_PAINT中hDC=BeginPaint(hwnd,&ps);TextOut(hDC,0,0,"http://www.sunxin.org",strlen("http://www.sunxin.org"));EndPaint(hwnd,&ps);break;// 窗口關閉的時候的消息case WM_CLOSE:if(IDYES==MessageBox(hwnd,"是否真的結束?","message",MB_YESNO)){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:// 對其不感興趣的進行缺省處理return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0;
}

新建一個工程

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳


總結

VC++學習(1)——環境準備,參考文檔等,初步入門VC++

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14532.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14532.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14532.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機系統概述習題

選擇題 電子計算機問世至今&#xff0c;新型計算機不斷推陳出新&#xff0c;不管怎么更新&#xff0c;依然具有“存儲程序”的特點&#xff0c;最早提出這種概念的是(B) A. 巴貝奇 B. 馮*諾伊曼 C. 帕斯卡 D. 貝爾 B下列描述中___是正確的。 A. 控制器能理解&#xff0c;解釋…

中國主要城市房價指數數據集(2011-2024)

數據來源&#xff1a;東方財富網 時間跨度&#xff1a;2011年1月 - 2024年4月 數據范圍&#xff1a;中國主要城市 包含指標&#xff1a; 日期、城市 新建商品住宅價格指數-同比 新建商品住宅價格指數-環比 新建商品住宅價格指數-定基 二手住宅價格指數-環比 二手住宅價格指…

Visual Studio 調試及快捷鍵

文章目錄 原文連接環境一、調試器的基本使用1、更改執行流2、快速執行某一條代碼斷點設置條件斷點查看內存信息查看調用堆棧查看寄存器信息設置監視斷點調試二、快捷鍵一、窗口快捷鍵二、查找相關快捷鍵三、代碼快捷鍵原文連接 【教程】visual studio debug 技巧總結 環境 一…

OpenCASCADE Draw模塊TKDraw項目問題修改

1.問題 在調試Draw模塊代碼時&#xff0c;出現一個小問題&#xff0c;導致無法正常運行 如下&#xff1a; 2.代碼跟蹤 通過代碼跟蹤發現時一個數組越界問題&#xff0c;在此處添加了判斷處理&#xff0c;程序可以正常調試

Golang使用HTTP框架zdpgo_resty實現文件下載

核心代碼 代碼解析&#xff1a; client.SetOutputDirectory("Downloads") 設置下載目錄client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download 指定下載文件名并進行下載 // 設置輸出目錄路徑&#xff0c;如果目錄不存在&#xff…

數據結構順序表實現通訊錄

目錄 1. 前言&#xff1a; 2.通訊錄項目的創建 3. 通訊錄的實現 3.1 通訊錄的初始化 3.2 通訊錄的銷毀 3.3 通訊錄添加數據 3.4 通訊錄查找數據 3.5 通訊錄展示數據 3.6 通訊錄刪除數據 3.7 通訊錄修改數據 4. 通訊錄完整代碼 4.1 test.c 4.2 SeqList.h 4.3 SeqLis…

PostgreSQL學習筆記

PostgreSQL 基本概念和架構 PostgreSQL 是一個功能強大的開源對象關系數據庫管理系統&#xff08;ORDBMS&#xff09;&#xff0c;其設計目標是遵循 SQL 標準&#xff0c;并提供豐富的功能&#xff0c;如復雜查詢、外鍵、觸發器、視圖和事務處理。以下是 PostgreSQL 的基本概念…

數據結構(Java實現):ArrayList

目錄 1.ArrayList簡介2.ArrayList構造方法分析3.ArrayList的add方法以及擴容機制4.ArrayList常用方法5.ArrayList遍歷6.ArrayList的缺陷 1.ArrayList簡介 在集合框架中&#xff0c;ArrayList是一個普通的類&#xff0c;實現了List接口&#xff0c;具體框架圖如下&#xff1a; …

編寫一個llvm編譯器插件,完成在store匯編指令前對內存合法性的check。

dds(iceoryx、fastdds等)中間件采用了共享內存&#xff0c;如果app內存越界將共享內存踩踏壞了&#xff0c;將會形成災難。本插件可以檢測到app是否在寫共享內存&#xff0c;如果是&#xff0c;我們可以讓app assert。從而提高dds的穩定性 插件效果&#xff1a; 插件源碼&…

話題:如何讓大模型變得更聰明?

隨著人工智能&#xff08;AI&#xff09;技術的迅速發展&#xff0c;大模型&#xff08;如GPT-4、BERT、Transformer等&#xff09;在自然語言處理、圖像識別和語音識別等領域取得了顯著成果。然而&#xff0c;如何讓大模型變得更聰明&#xff0c;進一步提升其性能和應用效果&a…

Netty: Netty中的組件

文章目錄 一、EventLoop1、EventLoop2、EventLoopGroup&#xff08;1&#xff09;處理普通時間和定時任務&#xff08;2&#xff09;處理IO任務 二、Channel三、Future&Promise四、Handler&Pipeline五、ByteBuf 一、EventLoop 1、EventLoop EventLoop本質是一個單線程…

Jetbrain | IDEA的啟動logo替換成可愛的vtuber-logo

看了這個&#xff0c;好可愛 【上Github熱榜了&#xff01;當編程語言的Logo變得可愛起來~】 又看了這個 光速整活&#xff0c;強啊 看到很多人整IDEA的logo包括我自己&#xff0c;都不是特別方便的搞&#xff0c;我就直接把文件放在綁定資源里直接下吧 然后直接找到本體的安…

ios swift5 codable字典轉模型,第三方庫SmartCodable

文章目錄 1.用第三方庫SmartCodable, github地址2.使用示例 1.用第三方庫SmartCodable, github地址 SmartCodable - github 2.使用示例 import Foundation import SmartCodablestruct CommonModel: SmartCodable {var message: String ""var success: Bool fals…

【深度學習】與【PyTorch實戰】

目錄 一、深度學習基礎 1.1 神經網絡簡介 1.2 激活函數 1.3 損失函數 1.4 優化算法 二、PyTorch基礎 2.1 PyTorch簡介 2.2 張量操作 2.3 構建神經網絡 2.4訓練模型 2.5 模型評估 三、PyTorch實戰 3.1 數據加載與預處理 3.2 模型定義與訓練 3.3 模型評估與調優 3…

成都青年AI人才嶄露頭角,知了匯智科技助力孵化營大放異彩

5月18日-19日&#xff0c;為期兩天的成都國際商貿城青年&#xff08;大學生&#xff09;AI應用孵化營活動在熱烈的氛圍中圓滿落幕。本次活動由成都國際商貿城、成都成商數字科技有限公司、成都知了匯智科技有限公司及成都電商職教集團聯合舉辦&#xff0c;旨在為青年&#xff0…

丟失api-ms-win-crt-runtime-l1-1-0.dll的多種解決方法分析,教你簡單的一鍵修復

在使用Windows操作系統時&#xff0c;用戶可能會遇到一個涉及丟失 ?api-ms-win-crt-runtime-l1-1-0.dll文件的警告&#xff0c;這可能導致某些程序無法正常運行。該DLL文件屬于Microsoft Visual C Redistributable軟件包的一部分&#xff0c;這個軟件包為多個應用提供運行時支…

Mybatis-plus的兩種分頁方案

Mybatis-plus的兩種分頁方案 底層的邏輯是寫出最終執行的sql或者selectPage方法等&#xff0c;中間需要配置相應的page攔截器。 注意&#xff1a;如沒有配置攔截器&#xff0c;直接執行就會存在total的值為0&#xff0c;此方法無效。 1. 基于MP的IPage接口實現 使用步驟&am…

深度學習-Softmax回歸+損失函數+圖像分類數據集

目錄 Softmax回歸回歸 VS 分類Kaggle上的分類問題 從回歸到多類分類回歸分類從回歸到多類分類-均方損失從回歸到多類分類-無校驗比例從回歸到多類分類-校驗比例 Softmax和交叉熵損失總結損失函數均方損失絕對值損失函數魯棒損失 圖像分類數據集通過框架中內置函數將FashionMNIS…

RabbitMQ---交換機-Fanout-Direct

Publisher&#xff1a;生產者&#xff0c;不再發送消息到隊列中&#xff0c;而是發給交換機Exchange&#xff1a;交換機&#xff0c;一方面&#xff0c;接收生產者發送的消息。另一方面&#xff0c;知道如何處理消息&#xff0c;例如遞交給某個特別隊列、遞交給所有隊列、或是將…

刪除實例分割中的特定標簽

用labelme軟件對圖像進行實例分割或語義分割標注后會得到json文件&#xff0c;如果想要刪除某個特定標簽&#xff0c;可以使用如下代碼&#xff0c;完整代碼下載地址&#xff1a;代碼地址 import json import os# 要處理的json文件夾路徑 folder_path H:/json # 需要刪除的標…