原创 c++ 虛函數 多態性 (一)

#include <iostream> using namespace std; class A { public:     void foo ()

原创 線程同步 旋轉鎖 Interlocked 用戶模式同步對象 InterlockedExchange

0、思考 如果需要以原子方式修改一個值。 1、相關api InterlockedIncrement(相當於++) InterlockedDecrement(相當於--) InterlockedExchangeAdd(相當於+)

原创 高低權限進程通信(ChangeWindowMessageFilter, WM_COPYDATA)

低權限進程向高權限進程發送消息時會返回拒絕訪問, windows爲我們提供了ChangeWindowMessageFilter, 直接上代碼(client.cpp用非管理員啓動, server.cpp用管理員啓動, 通過SendMessa

原创 線程同步 信號量 Semaphore 內核對象 CreateSemaphore

0、思考 生產者消費者問題,同步互斥問題,有界緩衝器問題: 1、兩個進程對同一個內存資源操作,一個生產者,一個消費者; 2、生產者往共享內存資源填充數據,如果區域滿,則等待消費者消費數據; 3、消費者從共享內存資源取數據,如果區域

原创 查看文件被佔用的進程 NtQueryObject NtQueryInformationFile NtQuerySystemInformation

當你重命名或刪除某個文件或文件夾時, 有時候系統提示說:操作無法完成...balabala...; 你怎麼知道它被什麼佔用了,上代碼 #pragma once #include #include #include #incl

原创 MSVCRTD.lib(crtexe.obj) : error LNK2019: 無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用

#pragma once #include <abprec.h> int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine,

原创 線程同步 事件 Event 內核對象 CreateEvent

0、思考 關鍵代碼段可以解決線程間同步,進程間怎麼辦? 1、相關api CreateEvent CreateEventEx SetEvent ResetEvent CloseHandle OpenEvent PulseEvent

原创 string

1、字符集(ASCII字符集、GBXXXX字符集、Unicode字符集) 1.1、ASCII字符集(ASCII編碼方案、EASCII編碼方案) 1.1.1、ASCII編碼方案 說明:美國信息交換標準代碼 優點:7位字符集廣泛用於代表標準

原创 dll入門簡單實例(動態鏈接庫)

方式一:非空項目 1、創建win32項目, 選擇Dll應用程序 2、新建dllexport.h // dllexport.h #ifdef WIN32     #ifdef DLL_TEST_EXPORT         #def

原创 屏蔽控制檯應用程序窗口

1、控制檯應用程序一(有窗) // main.cpp // #pragma comment(linker, "/subsystem:windows /entry:mainCRTStartup") int main(int argc, c

原创 爲什麼內置數組不支持數組之間的賦值,支持這種操作需要什麼信息?

數組名其實代表着一個指針常量,所以將一個數組名賦值給另一個數組,就像是把常量2賦值給常量3一樣,雖然語法正確,但在語意層面上會產生錯誤。 C++語言並未支持數組的賦值操作,編譯器在編譯時必須知道數組的長度,才能產生執行代碼來支持數組對數

原创 線程同步 等待函數 WaitForSingleObject WaitForMultipleObjects

0、思考 無 1、相關api WaitForSingleObject WaitForMultipleObjects WaitForInputIdle(對父進程比較有用) MsgWaitForMultipleObjects Msg

原创 線程同步 等待定時器 WaitableTimer 內核對象 CreateWaitableTimer

0、思考 線程a負責發紅包,線程b、c負責搶紅包,線程a不會主動告訴b要發紅包了,那線程b有什麼策略? 1、相關api CreateWaitableTimer SetWaitableTimer CancelWaitableTim

原创 線程同步 互斥量 Mutex 內核對象 CreateMutex

0、思考 1、相關api CreateMutex CreateMutexEx OpenMutex ReleaseMutex CloseHandle WaitForSingleObject WaitForMultipleObject

原创 爲什麼64位進程不能調用32位dll

我想把它標爲原創, 因爲這不是一篇合格的翻譯; 我最終把它標爲翻譯, 因爲這更不是一篇合格的原創。 在此之前, 告訴你一個祕密:16位代碼是可以調入32位代碼的, 注意, 是可以。聰明的同學知道這個祕密後會問既然這樣子爲什麼32b代碼