日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

插件编写傻瓜教程VC6.0

發布時間:2025/3/19 c/c++ 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 插件编写傻瓜教程VC6.0 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
>>寫在前面
本教程主要講解如何用按鍵精靈自帶的模版編寫插件.
請大家在教程沒全部寫完之前不要跟貼,謝謝合作!
需要的工具:VC6.0 編輯語言:C++

>>初步接觸
1.安裝VC6.0(建議不要使用創天的漢化版)

2.解壓插件自帶的模版,解壓后選擇QMPlugin.dsw文件,打開工程.進入VC編輯界面.

3.選擇FileViewx選項卡,再選擇QMPlugin.cpp.(參照map1圖中紅圈位置)
此時,編輯區域顯示的是QMPlugin.cpp文件的內容.

4.請看下面的組圖中的紅圈部分
紅圈1-4的內容都是QMPlugin.cpp的內容
紅圈1: 定義頭文件部分
在此打個簡單的比喻!我們把插件看做一個機器裝配工廠,插件中需要調用的函數看做是裝配零件.
插件這個工廠要裝配不同的機器必須用到不同的裝配零件.為了方便工作,我們人為地把汽車零件放在一個倉庫,
把輪船零件放在一個倉庫.類推.在這里,定義頭文件就相當于在組裝一臺機器前告訴工廠,
我們組裝這臺機器需要去哪些倉庫拿零件.下面程序中用到的函數必須在頭文件指示的倉庫里.

這里還要提一下,倉庫可以存在包含關系,比如A倉庫可以包含B.C2個小倉庫,
如果我們要取B倉庫中的零件,只要指明A倉庫或者B倉庫任意一個就可以了.
詳細的頭文件包含關系可以參閱MSDN(當然自己也可以定義頭文件,本文主要是寫給一些初學者,在此略過)

紅圈2: 編輯按鍵精靈腳本時顯示的本插件的名稱注釋
修改這里的字符串可以改變本插件顯示的名稱

紅圈3: 定義功能的函數
紅圈部分是一個函數,一個函數對應著一條插件命令.
int Test1Handler(char *lpszParamList, char *lpszRetVal)
int表示函數的返回值是一個整型
Test1Handler是本函數的名稱
(char *lpszParamList, char *lpszRetVal)是函數的2個參數
char表示這2個參數都是字符型,*是指針運算符,char *說明這2個參數是字符型指針
在C/C++中可以把字符型指針看做是字符型數組,簡單的也可以理解成字符串.
lpszParamList是命令需要的參數,lpszRetVal是返回值參數

char lpszParam1[1024] = {0}, lpszParam2[1024] = {0};?
ParseParam(lpszParamList,lpszParam1,lpszParam2);
如果該函數對應的插件命令參數大于1個,我們則需要這2句
這2句是把命令需要的參數分解,我們在使用插件的時候寫進的命令參數是XXX,XXXX,XXXX的形式的.
XXX,XXXX,XXXX被看做是一個參數傳遞給插件中的函數.因此我們需要ParseParam函數來分解,
分解的過程是以逗號為分割線,去掉逗號,把一個參數分成幾個參數的過程.
上面例子2句是分解成2個參數lpszParam1,lpszParam2.分解后的參數仍是字符串型.
(提一下ParseParam函數是在ExtFunc.cpp中被定義的)

char lpszShowMessage[4096];
sprintf(lpszShowMessage,"Param1 = %s\nParam2 = %s",lpszParam1,lpszParam2);
MessageBox(0,lpszShowMessage,"This is plugin command Test1",0);
這3句是函數過程,這里的sprintf函數就是被定義在"stdio.h"中的

return 1;
C/C++語言的函數除了函數是void型外都必須有返回值,
如果你的函數不需要返回值,也要寫return這句,至于返回什么可以任意.
上面定義了函數返回類型是int,這里只要寫任意一個整數就可以了.

紅圈4: 本插件在編輯按鍵精靈腳本時的命令,以及注釋部分
"Test1","測試1",Test1Handler,
"Test2","測試2",Test2Handler,
知道這是一個結構體就可以了.這個結構體有3個部分,每個部分的逗號都不可以省略.
3個逗號以及這3個逗號之前的字符表示一條插件命令,6.1的則是4個逗號
"Test1"是完成后插件的命令名,與Test1Handler對應
"測試1"是注釋內容,Test1Handler是上面定義的函數,與"Test1"對應
如果這里你不想寫注釋可以這樣寫"Test1",,Test1Handler,
注:6.0和6.1的模版不同之處,6.1此處多了1個部分,表示該命令有幾個命令參數
"Test1","測試1",Test1Handler,2,

現在接觸電腦時間越來越少,估計這篇教程要慢慢完成了.預計2.3天才能完成一節.
還有對一些論壇短消息沒有回復,敬請大家諒解.
下個章節會講一些C++函數類型轉換的相關知識.

[?本帖最后由 沉8 于 2007-3-16 12:22 PM 編輯?]

1.jpg?(162.66 KB)

?

map1

2.jpg?(165.33 KB)

?

map2

3.jpg?(153.51 KB)

?

map3

轉載于:https://www.cnblogs.com/rogee/archive/2010/11/30/1892448.html

總結

以上是生活随笔為你收集整理的插件编写傻瓜教程VC6.0的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。