應用程式/解決方案‎ > ‎雜記‎ > ‎2020‎ > ‎

於QB64上使用DLL裡的API呼叫範例


Windows好用的API幾乎都是用C/C++所設計, 特別是用法與Windows API一致的方式,
而使用API莫過於參數的傳遞和結果的接收, 所以優先了解一下QB64和C/C++的變數型別對應關係,
一般數字形態就不多說, 字串的部分才是重點, 其實就是所謂的指標如何對應, 看到 _OFFSET 這裡,
QB64增加這個保留字於原本Quick Basic上是沒有的, 而且不只是一個形別也是一個函式,
用來抓取QB64的變量可供回傳給API的指標內容, 可看到 _OFFSET (function) 這邊有範例,
範例是以 memcpy 作例子, 不過更有用的是 memccpy , 所以修改範例成新的示範:
memcpy於原示範中是用 SUB 宣告,
但memccpy或memcpy於C/C++中是有回傳指標的, 所以改用 FUNCTION 作示範
於Windows或C/C++上常見的字串都是ZE-String, 也就是末端有個代碼為0的結束字元,
使用memccpy可以很方便的簡化傳遞過程中的複製動作

然後像之前 於Python上使用DLL裡的API呼叫範例, 這裡也用相同的DLL來作示範,
看得懂就看得懂, 看不懂也懶得多說了, 上次有說QB64上按[F1]鍵隨時都可查說明
PS: 第3行那裏 ".\CsvReader_x32" 這樣寫, 在編譯成EXE後執行會有找不到DLL的狀況,
改成正常習慣的寫法, 於相同工作路徑中 "CsvReader_x32" 這樣寫就好了, 不論QB64中RUN或編譯EXE執行都OK

執行結果


程式碼懶人包

可使用下面邀請聯結加入Dropbox

  https://db.tt/5W0wFWIk2b

qb64-CsvReadSample.rar檔案位於Dropbox上, 網址為

  https://www.dropbox.com/s/6a3uile3espe7g3/qb64-CsvReadSample.rar?dl=0

將檔案解壓在和QB64.exe相同路徑下即可


自行下載官網QB64的x86版搭配使用(可於x86或x64的作業系統皆可使用)

  https://github.com/QB64Team/qb64/releases/download/v1.4/qb64_1.4_win_x86.zip

QB64下載後解壓, 執行QB64.exe就能開始寫Quick Basic程式然後生產EXE執行檔四處複製使用了!


堅持要用x64的也可以改用x64版本的檔案 qb64-CsvReadSample_x64.rar 網址為
和x64版的QB64 qb64_1.4_win_x64.zip 搭配, 其實只有API的部分需改用x64的版本, 基本上程式碼都一樣



註解