原创 __cdecl,__stdcall,__fastcall,__pascal,__thiscall 的區別

轉自 https://www.cnblogs.com/john-h/p/6276828.html  microsoft的vc默認的是__cdecl方式,而windows API則是__stdcall,如果用vc開發dll給其他語言用,則應

原创 c++之於80X86彙編之stdcall,cdecl調用

stdcall:windows API調用方式,即WINAPI。 cdecl:c語言默認調用方式。 問題的由來。不同的調用方式,包括其它調用方式,fastcall,thiscall等等,主要是爲了解決函數調用中,參數的傳遞問題。stdca

原创 ASM 函數參數處理

函數參數傳遞一般通過棧,在此情形下,又有兩種表現形式: 1、形式1定義 fn proc ; asm code list fn endp 2、形式2定義 fn proc arg1:DWORD,arg2:DWORD ;asm code l

原创 x86浮點數指令

 x86架構下,一般通過專用協處理器計算浮點數。浮點數運算通過FPU(Float Point Unit,浮點運算單元計算)計算,提供了浮點棧寄存器st0~st7。 fld mem  ;浮點數入棧 fmul mem ;st(0)=st(0)

原创 【ASM]】local僞指令變量

local指令必須在proc的第一行。 編譯器會做以下工作: 1、爲每一個local變量預留棧空間 2、爲proc過程添加棧管理代碼 例: test_1 proc local x:DWORD xor eax,eax

原创 STL之map失足小記01

一年多沒寫過c++了,今天跳一坑裏去了。 現象: map.insert(pair<int,boo>(x,true);最後結果總是 map[x] 爲false 出錯代碼: #include <map> #include <iostream

原创 linux下自動補全命令實現之readline庫

readline庫:readline-7.0.tar.gz 依賴庫:ncurses-6.0.tar.gz 分別編譯安裝上面兩個庫後,便可以進行代碼編譯了。 測試代碼: #include <unistd.h> #include <stri

原创 【CLisp】JSON解析簡單實現

使用說明: (defvar json-string "[a,b,c:{c:1,d:2},e]") (print (json-cvt json-string)) 解析結果: 實現: ;;;; json convert ;;;; WHJ

原创 HTTP POST 提交數據之 Content-Type: multipart/form-data

Content-Type: multiple/form-data 可以用來一次性提交較爲複雜的數據結構,比如常規表單,多個文件等。通過 boundary 定義內容分割標誌和內容長度行 來綜合控制包體的內容劃分。定義一般爲:POST REL

原创 CLISP 之 創建HTTP GET、POST、HEAD請求

;;;; WHJ.20180504;;;; 創建HTTP GET、POST、HEAD測試 及 cookie 攜帶,自定義 Header ; 注:首行要注意大寫(in-package :cl-user)(de

原创 我的2017年

2017年已經過去了。想或者不想都過去了。這一年都收穫了什麼,失去了什麼,現在想想覺得有些發懵。這一年要說最大的收穫肯定是當了爸爸了,女兒的出生着實讓我興奮了一段日子,興奮之後才覺得肩上擔子重了許多,也多

原创 二叉排序樹算法練手之CLISP實現【通用版】

(in-package :cl-user)(defun reload () (load "h:/lisptool/btree.lsp"))(defmacro node-level (node) `(getf