国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發(fā)表于: 2007-09-22 12:49
一、最新三菱PLC FX系列PLC編程口通信協(xié)議動態(tài)鏈接庫DLL(以下簡稱DLL),是為滿足工業(yè)通信需要,針對工業(yè)領(lǐng)域要求上位機(jī)對PLC實時采集與控制的組態(tài)編程而設(shè)計。本DLL是采用Delphi語言開發(fā)的標(biāo)準(zhǔn)串口通訊庫,具有以下特點:
1)、實時性、可靠性好,可根據(jù)通信數(shù)據(jù)量自行調(diào)整通信時間;
2)、適用于多PLC聯(lián)網(wǎng)和上位機(jī)通信,滿足多方面的需要;
3)、函數(shù)接口功能全,操作簡單;
4)、附加實用轉(zhuǎn)換與讀取函數(shù),易于快速開發(fā)(VC等非RAD開發(fā)環(huán)境的開發(fā));
5)、支持USB、PC擴(kuò)展卡等擴(kuò)展串口號;
6)、支持多種操作系統(tǒng)win9x/win2000/winXP;
7)、可在多種編程環(huán)境下使用,例如VB、VC、Delphi等開發(fā)環(huán)境。

二、DLL函數(shù)說明

1、打開串口
Function ComOpen(nport:longint;User:Pchar):longint;stdcall;
參數(shù):nport: 打開串口號,取值為1~8,代表COM1~COM8;
      User:DLL授權(quán)用戶名;
返回值:長整型,操作成功返回1,否則返回0;打開串口不成功即返回0時的原因:1)、串口不存在或被占用; 2)、DLL試用過期; 3)、DLL授權(quán)注冊不正確。

使用舉例:
ComOpen(1,'wjun') , 打開COM1口。

2、關(guān)閉串口
Function ComClose(nport:longint):longint;stdcall;
參數(shù):nport: 串口號,取值為1~8,代表COM1~COM8;
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComClose(1) ,關(guān)閉打開的COM1口。

3、PLC存儲器的預(yù)置(D)
Function ComDWrite(nport,address:longint;sendstr:pchar):longint;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 寄存器地址,取值為0~4095(此值需根據(jù)不同的PLC操作選擇合適的地址范圍);
sendstr:  給寄存器寫入的值,該值為4個一組的16進(jìn)制字符串組其取值為0000~FFFF(整數(shù)值為0~65535),當(dāng)要寫入多個寄存器值時依次排列即可。如給D0與D1寫值100和1000,先將100轉(zhuǎn)成16進(jìn)制字符串0064、1000轉(zhuǎn)成16進(jìn)制字符串03E8,則sendstr=006403E8;一次最多寫32個寄存器即字符串長應(yīng)小于等于128;
                            ---------- ----  ~  ---------
寫字符串序列如:            | 0000 | FFFF | 0010 | 0064 |  ~    | 0010 | 0064 |
                            ---------- ----  ~  ---------
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComDwrite(1,0,‘006403E8’),由串口1預(yù)置值D0=100,D1=1000。

4、PLC存儲器的讀取(C、D、T)
Function ComDRead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 寄存器地址,取值為D區(qū)0~4095、C、T(定時器/計數(shù)器當(dāng)前值)區(qū)0~255;
Count: 讀取寄存器個數(shù),最多讀取32個寄存器;DLL讀取的越界會自動舍去
element:元件名稱,支持D、C、T;
返回值:字符串?dāng)?shù)據(jù),字符串?dāng)?shù)據(jù)的終止符為"@";
使用舉例:
ComDRead(1,0,4,'D') ,由COM1讀取D0~D3四個寄存器的值,如返回值為“0001006403E809F0@”,則表示D0=0001, D1=0064,D2=03E8,D3=09F0;

                            ---------- ----  ---
讀字符串序列如:            | 0001 | 0064 | 03E8 | 009F | | @ |
                            ---------- ----  ---
返回值為16進(jìn)制字符串,可以將返回值如上四位一組再轉(zhuǎn)換成“0~65535”的整數(shù)值。


5、PLC的多線圈強(qiáng)置(C、M、S、T)
Function ComEForce(nport,address:longint;element,sendstr:pchar):longint;stdcall;
參數(shù):
nport: 串口號,取值為1~8, 代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~2047、S:0~999、T:0~255、特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
sendstr:  給多線圈寫入的值,該值為2個一組的16進(jìn)制字符串組其取值為00~FF(整數(shù)值為0~255),當(dāng)要寫入多個值時依次排列即可。例如: 字節(jié)地址C0'(實際由位地址位C0~C7)、字節(jié)地址C1'(實際由位地址位C8~C15),如給C0'賦值80、C1'賦值CF,則sendstr=80CF;一次最多寫64個字節(jié),即字符串長應(yīng)小于等于128;
                          ---------- - ~  ------
寫字符串序列如:          | 00 | FF | 10 | 64 |  ~  | 1F | 48 |
                          ---------- - ~  ------

實際字符串與位地址的數(shù)值應(yīng)如下表:(將上例的字節(jié)C0'、C1'轉(zhuǎn)換為位地址C0~C15由下表對應(yīng))
            ------------------------------------
位地址:    | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
            ------------------------------------ 
各位賦值:  | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1  | 1  | 0  | 0  | 1  | 1  | 1 | 1 |
            ------------------------------------
16進(jìn)制串:  |      8      |      0      |        C        |        F      |
            ------------------------------------
         
返回值:長整型,操作成功返回1,否則返回0;

使用舉例:
ComEForce(1,0,‘C’ ,‘80CF’),DLL將按上表給相應(yīng)位強(qiáng)置值,這里地址address賦值0~7都是給C0~C15的強(qiáng)置值,因?qū)嶋H字節(jié)地址=address div 8 (0~7 div 8 都等于0,即都是給C0'、C1'強(qiáng)置值)。

字節(jié)地址如Mx' = address div 8 ,M、S、C、T都按此公式計算如何給實際的位地址強(qiáng)置值。

6、PLC的多線圈讀取(C、M、S、T、X、Y)
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~2047、S:0~999、T:0~255、X:0~177(8進(jìn)制)、Y:0~177(8進(jìn)制)、特M: M8000~M8255;
Count: 讀取字節(jié)個數(shù),最多讀取64個字節(jié);
element:元件名稱,支持C、M、S、T、X、Y;
位單元的字節(jié)組成按8個位一組,如56(16進(jìn)制)則表示下表的位構(gòu)造值。
              ----------------
位地址:      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
              ----------------
各位賦值:    | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 |
              ----------------
16進(jìn)制串:    |      5      |      6      |
              ----------------
使用舉例:
ComERead(1,0,1,‘M’),如返回56(16進(jìn)制)則M0~M7的值為上表反應(yīng)的結(jié)果。0~255的位地址映射成字節(jié)地址應(yīng)為0~31。
即:實際地址=address / 8 ,如ComERead(1,11,2,‘C’)相應(yīng)都得是C8~C15與C16~C23組合的兩個字節(jié)的值,例如返回值為“870A@”
        -----------------------------------------
位地址:| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | @ |
        ----------------------------------------- 
各位賦值:| 1 | 0  | 0  | 0  | 0  | 1  | 1 | 1 | 0  | 0  | 0  | 0  | 1  | 0  | 1  | 0  | @ |
        -----------------------------------------
16進(jìn)制串:|        8        |        7      |        0        |        A        | @ |
        -----------------------------------------

"@"為字符串?dāng)?shù)據(jù)的終止符。

DLL還提供附加函數(shù)CinBin ,可以讀出字節(jié)中相應(yīng)位的值是1還是0。

對于X、Y區(qū)線圈地址可以按8進(jìn)制地址轉(zhuǎn)換成10進(jìn)制后再參照上表的地址映射關(guān)系。


7、PLC的線圈置位(C、M、S、T)

Function ComESet(nport,address:longint;element:Pchar):longint;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~1023、S:0~999、T:0~255、X:0~177、Y:0~177及特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
使用舉例:
ComESet(1,0,‘C’),由COM1給C0置位;
ComESet(1,8010,‘M’), 由COM1給M8010置位;


8、PLC的線圈復(fù)位(C、M、S、T)
Function ComEReset (nport,address:longint;element:Pchar):longint;stdcall;
參數(shù):
nport: 串口號,取值為1~8,代表COM1~COM8;
address: 位單元地址,定時器C:0~255、M:0~1023、S:0~999、T:0~255、X:0~177、Y:0~177及特M: M8000~M8255;
element:元件名稱,支持C、M、S、T;
使用舉例:
ComEReset(1,0,‘T’),給T0復(fù)位;
ComEReset (1,810,‘S’),給S810復(fù)位;

三、DLL附加函數(shù)說明

1、串口打開狀態(tài)的讀取
Function ComTrue(nport:longint):longint;stdcall;
參數(shù):
noprt: 串口號,取值為1~8,代表COM1~COM8;
返回值:長整型,串口打開返回1,否則返回0;

2、整數(shù)轉(zhuǎn)換成16進(jìn)制字符串 (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CIntToHex(Cint,Digits:Longint):Pchar;stdcall;
參數(shù):
Cint: 待轉(zhuǎn)換整數(shù),取值為(0~65535);
Digits: 轉(zhuǎn)換的字符串位數(shù),指定位數(shù)小于實際位數(shù)時按實際輸出;

使用舉例:
CIntToHex(200,2),則返回字符串“C8@”;
CIntToHex(200,4),則返回字符串“00C8@”;
CIntToHex(4500,4),則返回字符串“1194@”;
CIntToHex(4500,3),則返回字符串“1194@”,因為“194”不足以表示4500這個數(shù)所以按實際輸出字符串“1194@”;

"@"為字符串?dāng)?shù)據(jù)的終止符。

3、16進(jìn)制字符串轉(zhuǎn)換成整數(shù) (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CHexToInt(CHex:Pchar):Longint;stdcall;
參數(shù):
CHex: 待轉(zhuǎn)換字符串,取值為(0000~FFFF);
使用舉例:
CHexToInt(‘03E8’),則返回整數(shù)1000;

4、抽取16進(jìn)制字符串中某個位的值
Function CinBin(CHex:Pchar;Start:longint):longint;stdcall;
參數(shù):
CHex: 待轉(zhuǎn)換字符串,取值為(0~FFFF);
Start: 抽取的位,取值為(0~15);
使用舉例:
CinBin(‘0F’,3),則返回值1;
CinBin(‘0F’,4),則返回值0;
CinBin(‘03E8’,6),則返回值1;
讀取M8~M15組合成的字節(jié)值為“FC”時,要讀取M10的值時,則調(diào)用CinBin(‘FC’,3)返回值1表示M10的值為1。

5、返回字符串Text左邊的Count個字符  (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CLeftStr(Text:Pchar;Count:longint):Pchar;stdcall;
參數(shù):
Text: 字符串原型;
Count: 指定返回左側(cè)字符串個數(shù);

使用舉例:
CleftStr('123456', 3) = '123@';

"@"為字符串?dāng)?shù)據(jù)的終止符。

6、返回字符串Text右邊的Count個字符  (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CRightStr(Text:Pchar;Count:longint):Pchar;stdcall;
參數(shù):
Text: 字符串原型;
Count: 指定返回右側(cè)字符串個數(shù)
使用舉例:
CRightStr('123456', 3) = '456@';

"@"為字符串?dāng)?shù)據(jù)的終止符。

7、返回字符串Text從Start開始的Count個字符 (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CMidStr(Text:Pchar;Start,Count:longint):Pchar;stdcall;
參數(shù):
Text: 字符串原型;
Start: 指定返回字符串的起始位置;
Count: 指定返回字符串個數(shù);
使用舉例:
CMidStr('123456',2,3) = '234@';

"@"為字符串?dāng)?shù)據(jù)的終止符。

8、字符串Substr開始于字符串S的位置 (為VC等非RAD開發(fā)環(huán)境所增設(shè))
Function CinStr(S,Substr:Pchar):Longint;stdcall;
參數(shù):
S: 字符串原型;
Substr: 查詢的字符串;
返回值:長整型;

使用舉例:
CinStr('1Tfdg23456','2') = 6

DLL中關(guān)于傳出字符串值的函數(shù)都以"@"為字符串函數(shù)值終止符。

四、Delphi、VB、VC語言環(huán)境的開發(fā)使用說明

1、Delphi語言環(huán)境開發(fā)說明

在Delphi環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程文件的主程序窗體(pas)文件中聲明:

Function ComOpen(nport:longint;User:pchar):longint;stdcall;External'melsecfx.dll';
Function ComClose(nport:longint):longint;stdcall;External'melsecfx.dll';
Function ComDWrite(nport,address:longint;sendstr:pchar):longint;stdcall;External'melsecfx.dll';
Function ComDRead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;External'melsecfx.dll';
Function ComEForce(nport,address:longint;element,sendstr:pchar):longint;stdcall;External'melsecfx.dll';
Function ComERead(nport,address,Count:longint;element:Pchar):Pchar;stdcall;External'melsecfx.dll';
Function ComESet(nport,address:longint;Element:Pchar):longint;stdcall;External'melsecfx.dll';
Function ComEReset(nport,address:longint;element:Pchar):longint;stdcall;External'melsecfx.dll';
Function ComTrue(nport:longint):longint;stdcall; External'melsecfx.dll';
Function CinBin(CHex:Pchar;Start:longint):longint;stdcall; External'melsecfx.dll';

其它附加函數(shù)Delphi有實用函數(shù),建議用Delphi自帶函數(shù),如需使用聲明參上例;

聲明后可以在程序中使用這些函數(shù),附加函數(shù)置中除ComTrue、CinBin外Delphi系統(tǒng)自帶有類似功能函數(shù)。通信時必須先使用ComOpen函數(shù)打開串口,在串口打開后可以有效操作相關(guān)函數(shù),為確保通信可在程序運行開始時打開串口,程序關(guān)閉前關(guān)閉串口。應(yīng)用程序關(guān)閉之前請務(wù)必將關(guān)閉所有串口,如串口未關(guān)閉前關(guān)閉系統(tǒng)將拋出異常。確保應(yīng)用程序在關(guān)閉釋放前關(guān)閉打開的串口。解決方法,在form的OnDestroy事件中加入如下語句:
if ComTrue(1)=1 then ComClose(1);
在Delphi中給中給DLL中的函數(shù)傳pchar值問題,參考下例:
讀取多線圈M8~M23的值
Procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  elementstr,Recstr:string
  Name:pchar;
  address,Count:word;
begin
  elementstr:=’M’;
  address:=8;  //地址給8~15都行,實際地址=address div 8
  Count:=2;
  // Recstr:= ComERead(1,address, Count,Pchar(elementstr));
  //以上的用法不建議是使用,推薦用下面的用法。
  try
    Name:=strAlloc(8);
Name:=strPCopy(Name, elementstr);  Recstr:=strpas(ComERead(1,address,Count,
Pchar(elementstr));
  finally;
    StrDispose(Name);
  end;
end; 
建議采用strPCopy()|string型轉(zhuǎn)換到Pchar型,straps()|Pchar型轉(zhuǎn)換到string型,不推薦使用直接轉(zhuǎn)換法。

上述可以詳細(xì)參照DEMO程序。

2、VB語言環(huán)境開發(fā)說明

在VB環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程文件中聲明:

Private Declare Function ComOpen Lib "melsecfx.dll" (ByVal nport As Long, ByVal User As String) As Long
Private Declare Function ComClose Lib "melsecfx.dll" (ByVal nport As Long) As Long
Private Declare Function ComDWrite Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal sendstr As String) As Long
Private Declare Function ComEForce Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String, ByVal sendstr As String) As Long
Private Declare Function ComDRead Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal Count As Long, ByVal element As String) As String
Private Declare Function ComERead Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal Count As Long, ByVal element As String) As String
Private Declare Function ComESet Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String) As Long
Private Declare Function ComEReset Lib "melsecfx.dll" (ByVal nport As Long, ByVal address As Long, ByVal element As String) As Long
Private Declare Function ComTrue Lib "melsecfx.dll" (ByVal nport As Long) As Long
Private Declare Function CinBin Lib "melsecfx.dll" (ByVal Chex As String, ByVal Start As Long) As Long

其它附加函數(shù)VB有實用函數(shù),建議用VB自帶函數(shù),如需使用聲明參上例;
做完上述聲明后,便可以在程序中使用相關(guān)函數(shù)了。本DLL是串口通信庫,通信時必須先使用ComOpen函數(shù)打開串口,在串口打開后可以有效操作相關(guān)函數(shù),為保證通信可以在程序運行開始時打開串口,程序關(guān)閉前關(guān)閉串口。在應(yīng)用程序關(guān)閉之前請務(wù)必將關(guān)閉所有串口,如您的程序串口未關(guān)閉前被關(guān)閉系統(tǒng)將拋出異常。當(dāng)出現(xiàn)這樣的異常請更改您的程序,確保應(yīng)用程序在關(guān)閉釋放前關(guān)閉打開的串口。
解決方法,在form的Unload事件中加入如下例:
If ComTrue(1)=1 then
  ComClose(1)
End if
為確保Unload事件有效執(zhí)行程序中應(yīng)使用“End”語句,而盡量使用“Unload”語句釋放所有窗體,因使用“End”語句系統(tǒng)不會執(zhí)行正常的窗體釋放等事件而直接退出程序,如程序中有form1,form2兩個窗體,則使用下面語句:
Unload  form1
Unload  form2
VB會在所有窗體關(guān)閉后釋放所有占用資源。
上述可以詳細(xì)參照DEMO程序。

3、VC語言環(huán)境開發(fā)說明
在VC環(huán)境下將melsecfx.dll、serialfx.slip(許可文件)復(fù)制到應(yīng)用程序目錄下(即將上述文件與編譯后的可執(zhí)行文件方入同一文件夾內(nèi));

在工程主文件cpp中聲明一個句柄:
HINSTANCE m_handle;
用來標(biāo)識導(dǎo)入的動態(tài)鏈接庫。

1)、導(dǎo)入動態(tài)鏈接庫,如例所示:

  m_handle =:: LoadLibrary("melsecfx.dll");

2)、按下例說明聲明相關(guān)各個函數(shù):

typedef long (CALLBACK* pOpen)(long nport, char* User);
typedef long (CALLBACK* pClose)(long nport);
typedef long (CALLBACK* pDWrite)(long nport,long address, char* sendstr);
typedef long (CALLBACK* pEForce)(long nport,long address, char* element, char* sendstr);
typedef char* (CALLBACK* pDRead)(long nport,long address,long Count, char* element);
typedef char* (CALLBACK* pERead)(long nport,long address,long Count,char* element);
typedef long (CALLBACK* pSet)(long nport,long address, char* element);
typedef long (CALLBACK* pReset)(long nport,long address char* element);
typedef long (CALLBACK* pTrue)(long nport);
typedef char* (CALLBACK* pIntHex)(long Cint,long Digits);
typedef long (CALLBACK* pHexInt)( char* CHex);
typedef long (CALLBACK* pBin)( char* Chex, long Start);
typedef char* (CALLBACK* pLeft)( char* Text, long Count);
typedef char* (CALLBACK* pRight)( char* Text, long Count);
typedef char* (CALLBACK* pMid)( char* Text, long  Start, long Count);
typedef long (CALLBACK* pinstr)( char* S, char* Substr);

3)、聲明并建立動態(tài)鏈接庫中的函數(shù)與新函數(shù)名的對應(yīng)關(guān)系,如下:

pOpen cOpen = (pOpen)GetProcAddress(m_handle,"ComOpen");
pClose cClose = (pClose)GetProcAddress(m_handle,"ComClose");
pDWrite cDWrite = (pDWrite)GetProcAddress(m_handle," ComDWrite");
pDRead cDRead = (pDRead)GetProcAddress(m_handle," ComDRead");
pEForce cEForce = (pEForce)GetProcAddress(m_handle,"ComEForce");
pERead cERead = (pERead)GetProcAddress(m_handle,"ComERead");
pSet cSet = (pSet)GetProcAddress(m_handle," ComESet");
pReset cReset = (pReset)GetProcAddress(m_handle," ComEReset");
pTrue cTrue = (pTrue)GetProcAddress(m_handle," ComTrue");
pIntHex cIntHex = (pIntHex)GetProcAddress(m_handle," CIntToHex");
pHexInt cHexInt = (pHexInt)GetProcAddress(m_handle," CHexToInt");
pBin cBin = (pBin)GetProcAddress(m_handle," CinBin");
pLeft cLeft = (pLeft)GetProcAddress(m_handle," CLeftStr");
pRight cRight = (pRight)GetProcAddress(m_handle," CRightStr");
pMid cMid= (pMid)GetProcAddress(m_handle," CMidStr");
pinstr instr=(pinstr)GetProcAddress(m_handle," CinStr");

注:雙引號中為動態(tài)鏈接庫中的函數(shù)名。

4)、接下來就可以自由使用動態(tài)鏈接庫中的函數(shù)了,如:

cOpen(參數(shù)略);
cClose(參數(shù)略);
cDWrite(參數(shù)略);
cDRead(參數(shù)略);
cEForce(參數(shù)略);
cERead(參數(shù)略);
cSet(參數(shù)略);
cReset(參數(shù)略);
cTrue(參數(shù)略);
cIntHex(參數(shù)略);
cHexInt(參數(shù)略);
cBin(參數(shù)略);
cLeft(參數(shù)略);
cRight(參數(shù)略);
cMid(參數(shù)略);
instr(參數(shù)略);

注:函數(shù)中用到了char*型參數(shù),這里介紹下char*與Cstring的相互轉(zhuǎn)換的函數(shù):
(1)char*->CString
char* sz;
CString str;
str.Format("%s",sz);  //可以用此函數(shù)將讀取的值轉(zhuǎn)成字符串
(2) CString -> char*
CString str;
char* sz = str.GetBuffer(0);//可將字符串轉(zhuǎn)成char*給函數(shù)賦值

5)、當(dāng)不再需要使用DLL時記得關(guān)閉串口及釋放動態(tài)鏈接庫,如:

關(guān)閉串口
if cTrue(1)==1 then
{
  cClose(1);
}

6)、釋放DLL

FreeLibrary(m_handle);

注:對于各位使用VC及其他開發(fā)環(huán)境的朋友,我表示歉意因為我不太使用這類軟件所以就不再寫DEMO程序了,VC的參照上述聲明我做過測試是可以使用的,其他開發(fā)環(huán)境我沒有測試不能保證您可以使用。

作者:  wjun7610
QQ:    157610979
Email: wjun7610@yahoo.com.cn
淘寶店:http://shop34821629.taobao.com
本帖最近評分記錄:
  • 下載積分:+5(taoyu001) 樓主辛苦了!
  • 下載積分:+5(YMMFA)
    wtgosa
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 219 個
    工控威望: 294 點
    下載積分: 6270 分
    在線時間: 293(小時)
    注冊時間: 2010-01-25
    最后登錄: 2025-05-07
    查看wtgosa的 主題 / 回貼
    1樓  發(fā)表于: 2011-05-15 12:21
           ,很想了解,但是智慧有限!!

    主站蜘蛛池模板: 久久精品视频9_玖玖色在线视频_亚洲国产美女视频_国产乱码精品一区二区三区香蕉_国产一二_欧美中日韩在线_日日噜噜夜夜_国产精产品一品二品 | 九九热黄色片_成人涩涩日本国产一区_亚洲美免无码中文字幕_天天看天天爽_爱色涩a资源_亚洲成H人AV无码动漫无遮挡_亚洲二区精品_成人免费无遮挡在线播放 | 久草热久_无码任你躁久久久久久老妇_国产精品久久久久av_精品久久国产老人久久综合_国产成人久_精品一区二区久久久久久久网精_久久国产主播_日本一区二区欧美 | 久久国产精品不只是精品66_国产精品扒开腿做爽爽爽_久久aⅴ乱码一区二区三区_欧洲熟妇色XXXXX欧美老妇伦_最近日韩中文字幕_国产精品久久久久乳精毛片毛斤_www日_jjzz18国产 | 在线高清无码A._国产白丝喷水视频在线观看_成人一二三区视频_婷婷丁香五月亚洲中文字幕_亚洲成色最大综合在线_亚洲天堂欧美在线_黄色片下_粗大的内捧猛烈进出少妇 | 国产日产欧美a一级在线_久久成人视屏_强行挺进朋友漂亮人妻身体_午夜影音_91精品国产高清久久久久久久久_国产高清久久_亚洲精品无码久久久_国产成人免费看片 | 手机在线播放国产女主播_国产精品一区二区久久不卡小说_久久夜靖品2区_精品视频色一区_品久久久久久久久久96高清_农村乱视频一区二区三区_久久久久无码精品国产情侣_黄又色又污又爽又高潮动态图 | 又色又爽又高潮免费视频国产_成人黄色一级视频_无套内谢少妇毛片a片免费_精品视频免费看_在线观看国产区_xxxxx日韩_欧美性XXXXX极品老少_天天逼网 | 天天噜日日噜狠狠噜免费_免费看成人AA片无码视频_国产第二十页_日韩欧美一级在线_日本a一级在线免费播放_欧美久久精品一级黑人c片_诱惑网综合_骚av在线 | 狠狠干黄色_丝袜视频一区二区三区_www成人免费视频_国产精品免费视频网站_大香伊蕉中文字幕_91色交_日韩1区2区_国产熟睡乱子伦午夜视频麻豆 | 欧美大片a片免费看视频频_麻豆精品影院_国产精品手机视频一区二区_久久懂色精品99综一区合_久久综合干_国产在线视频不卡二_国产天堂久久综合_79av国产 | 中国浓毛少妇毛茸茸_中文乱幕日产无线码_日本免费高清线视频免费_欧美在线小视频_久久久久久久久精_精品国产AV一区二区三区_亚洲欧美色αv在线影视_黄色精品免费 | 国产视频h_国产日韩视频_日日插天天操_成人宗合_日韩国产一区二区三区四区五区_亚洲AV永久无码精品桃花岛知道_www.日本在线_淫视频网站 | 免费播放大片免费观看视频_四房播播在线观看_狼群社区视频www中文_美欧日韩av无码一区二区_亚洲专区一区_337P日本欧洲亚洲大胆人人_色哟哟精品视频在线观看_简单av网 | 成人欧美一区二区三区在线_97精品伊人久久大香线蕉_亚洲最大看欧美片网站_不卡的一区二区_极品美女一级片_伊人11_东京热T0KY0综合久久_国产vr在线视频一区二区不卡 | 日本不卡视频在线观看_国产精品97_亚洲国产精品黑人久久久_久久精品亚洲欧美日韩久久_亚洲AV无码一区二区三区乱子伦_欧美精品少妇VIDEOFREE720_久草日本_亚a洲v中文字幕2023 | 中国av免费看_亚洲综合在线第一页_啊灬啊灬啊灬快灬深点吃奶_日本a大片_四川少妇BBB凸凸凸BBB按摩_亚洲第一视频网_久久婷婷色香五月综合激激情狠狠做五月_成人免费黄色视频 | 国自产拍亚洲免费视频_夫妇激情在线观看视频_亚洲精品高潮呻吟久久av_妞干网在线观看_精品久久久网_精品国产91久久久久久久妲己_国产人妇三级视频在线观看_国产精品56页 | 蜜臀影院_亚洲一区二区三区91_欧洲AV色爱无码综合网_精品日产卡一卡二卡麻豆_亚洲AV最新在线网址尤物_免费看的国产视频网站_一区二区网站_特级黄色一级毛片 | 丰满少妇大力进入_熟妇好紧好大快点舒服使劲xh_亚洲一区免费视频_成品人国产一区二区三区精品_亚洲欧美精品在线观看_原神xman图_久久久受www免费人成_久久香蕉影院 | 性欧美videosex18嫩_久久综合久久网_日韩成人视屏_国内精品51视频在线观看_91丨九色_中文字幕av在线播放_国产成人一区二区三区免费_6699嫩草久久久精品影院竹菊 | 成人免费无码大片A毛片软件_学园默示录在线看_九一国产精品视频_狠狠狠狼鲁亚洲综合网_91亚洲精品久久久蜜桃_免费无码又爽又刺激高潮软件_欧美疯狂性受XXXXX另类_日韩少妇乱码一区二区三区免费 | 成人免费无码大片A毛片软件_学园默示录在线看_九一国产精品视频_狠狠狠狼鲁亚洲综合网_91亚洲精品久久久蜜桃_免费无码又爽又刺激高潮软件_欧美疯狂性受XXXXX另类_日韩少妇乱码一区二区三区免费 | 少妇厨房愉情理9仑片视频_成人免费在线观看网址_国产成人无码精品一区不卡_久久看av_97超碰福利久久精品_美女一级黄色大片_国产欧美日韩一区二区三区四区_亚洲AV嫩草AV极品A片 | 国产麻豆精品a在线观看_91成人天堂久久成人_国产精品久久久久久52avav_成人av激情人伦小说_亚洲黄视频在线观看_国产成人亚洲综合网站小说_精品国产乱来一区二区三区_亚洲日韩中文字幕a∨ | 国产精品18久久久久久麻辣_黄色片免费在线看_亚洲一区二区三区波多野结衣_国产一区二区三区导航_曰本性l交片视频视频_国产在线视频xxx_亚洲乱码国产乱码精品精_91精品啪在线观看国产动漫 | 免费mmmxxx日本96_欧美黑人粗大xxxxbbbb_深夜福利老司机_8050午夜一级毛片免费看_91精品国产麻豆国产自产在线_色琪琪综合男人的天堂aⅴ视频_风流老太婆大BBWBBWHD视频_丰满少妇乱a片无码 | 在线观看免费观看视频_免费理论片手机在线播放_99久久精品费精品国产一区二_日韩一欧美内射在线观看_久草色在线_国产精品乱码一区二区三区四川人_日日草夜夜爽_国产成人免费视频网站视频社区 | 激情内射亚州一区二区三区爱妻_91成人精品一区二区三区四区_caoporen个人免费公开_男人猛吃奶女人爽视频_欧美人与动牲交A精品_特级西西大胆www147_国产一级毛片黄片_玖玖精品在线 | 夜夜穞天天穞狠狠穞AV美女按摩_亚洲高清视频免费_国产片在线看_永久高清免费av网址_大尺度做爰视频在线观看_国产精品一级大片_免费无码黄十八禁网站在线观看_55av亚洲 | 一级黄片毛片免费看_色又黄又爽18禁免费网站现观看_一区二区三区四区五区精品_视频一区在线视频_欧美一级黄色录像片_亚洲黄色片视频_国产免费av大片在线观看_麻豆精品免费 | 中国av免费看_亚洲综合在线第一页_啊灬啊灬啊灬快灬深点吃奶_日本a大片_四川少妇BBB凸凸凸BBB按摩_亚洲第一视频网_久久婷婷色香五月综合激激情狠狠做五月_成人免费黄色视频 | 国内精品久久久久久不卡影院_国产清纯美女白浆在线播放_aav在线_日韩成人一区二区三区在线观看_欧美在线_欧美人与拘性视交_欧美视频成人_国产情侣一区二区| 国产综合亚洲精品一区二_久久天天躁夜夜躁狠狠躁2024_亚洲AV无码成人黄网站在线观看_亚洲精品一区人人爽_国产精品国内免费一区二区三区_日本一本区_韩国av在线播放_欧美人与动欧交视频 | 国产精品影音_国产一级做a爰片在线看免费_老头把我添高潮了A片_午夜神器成在线人成在线人_亚洲精品中文字幕日本久久久_天天操天天谢_九色视频人porny_91久久久久久久国产欧美日韩- | 欧美整片在线_好紧好爽好深再快点AV在线_国产精品美女久久久久久免费_中午字幕在线_射射视频_思思久ren热_av中文资源在线_日韩天堂 | 国产无遮挡a片又黄又爽_亚洲福利国产_av中文字幕在线播放_国产极品紧身牛仔裤av片_性中国xxxx肥老妇人_巴西一级毛片_超碰天天操_国产xxxx成人精品免费视频频 | 亚洲精品一区二区在线播放_久久国产精品一国产精品金尊_久久国产精品一国产精品_在线国产日韩_狠狠色综合网站久久久久久久_8060yy中文无码视频在线观看_美女色站_中文第一区 | 一级黄片毛片免费看_色又黄又爽18禁免费网站现观看_一区二区三区四区五区精品_视频一区在线视频_欧美一级黄色录像片_亚洲黄色片视频_国产免费av大片在线观看_麻豆精品免费 | 四虎免费观看_日韩在线91_国产观看99_91婷婷射_亚洲精选中文字幕_色yeye高清在线视频_亚洲日韩成人无码不卡_一区二区三区日韩视频 | a级片免费观看_福利视频一二三在线观看_97色伦午夜国产亚洲精品_国产精品观看_亚洲乱码中文字幕综合234_91看片成人_年轻的朋友hd中字_久久地址 |