av天堂久久精品影音先锋,精品国产乱一区二区三区,97人妻精品一区二区三区,国产成人综合亚洲精品国产,亚洲国产女性内射第一区,国产精品日本一区二区不卡视频,国产肥臀视频一区二区三区 ,久久午夜私人影院
上海智忱科技發(fā)展有限公司
新增產(chǎn)品
|
公司簡介
注冊時(shí)間:
2007-09-13
聯(lián)系人:
電話:
Email:
首頁
公司簡介
產(chǎn)品目錄
公司新聞
技術(shù)文章
資料下載
成功案例
人才招聘
榮譽(yù)證書
聯(lián)系我們
產(chǎn)品目錄
安川YASKAWA
安川變頻器
安川伺服
安川制動單元
安川PG卡
安川G5/G7配件
三菱MITSUBISHI
三菱PLC
三菱伺服
三菱觸摸屏
西門子SIEMENS
西門子PLC
西門子變頻器
LG(LS產(chǎn)電)
LG 變頻器
LG PLC
LG 低壓電器
國外變頻器
富士變頻器
三墾變頻器
倫茨變頻器
LG變頻器
ABB變頻器
三菱變頻器
西門子變頻器
安川變頻器
國產(chǎn)變頻器
英威騰變頻器
普傳變頻器
安川變頻器維修
三菱變頻器維修
西門子變頻器維修
ABB變頻器維修
富士變頻器維修
倫茨變頻器維修
西威變頻器維修
變頻器維修
工控產(chǎn)品維修
伺服維修
變頻器維修
PLC維修
伺服維修
觸摸屏維修
直流調(diào)速器維修
全新庫存產(chǎn)品
全新其它產(chǎn)品
全新庫存變頻器
當(dāng)前位置:
首頁
>>>
技術(shù)文章
>
技術(shù)文章
WINCC技巧集錦
WINCC技巧集錦
如何確認(rèn)信息?
首先必須在畫面中插入報(bào)警控件,可以用以下兩種方式來確認(rèn)信息:
可以用如下的函數(shù)來確認(rèn)單條信息:
4版本和低于此版本的WinCC:BOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC:BOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
可以用如下的函數(shù)確認(rèn)報(bào)警窗口所有可見的報(bào)警:
4版本和低于此版本的WinCC:BOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC:BOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObje
如何實(shí)現(xiàn)從WinCC運(yùn)行畫面跳轉(zhuǎn)至WinCC控制中心?
*好的方式是在WinCC運(yùn)行畫面上做一個(gè)按鈕,該按鈕應(yīng)該置為密碼保護(hù),在該按鈕上設(shè)置C-action。
低于WinCC V5.0:
#pragma code("user32.dll")
Bool SetForegroundWindow(HWND);
#pragma code()
HWND handle;
Handle=FindWindow("MCPFrameWndClass",NULL);
If(!SetForegroundWindow(handle))printf("\r\n SetForeground fails");
5.0版本和高于此版本的WinCC:
#pragma code("user32.dll")
Bool SetForegroundWindow(HWND);
#pragma code()
HWND handle;
Handle=FindWindow("WinCCExplorerFrameWndClass",NULL);
If(!SetForegroundWindow(handle)) printf("\r\n SetForeground fails");
如何在WinCC中讀取計(jì)算機(jī)系統(tǒng)時(shí)間?
可以編寫如下的C-action:
#pragma code("kernel32.dll");
Void GetLocalTimes(SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
GetLocalTime(&time);
SetTagWord("Varname",time.wYear );
SetTagWord("Varname",time.wMonth );
SetTagWord("Varname",time.wDayOfWeek );
SetTagWord("Varname",time.wDay );
SetTagWord("Varname",time.wHour );
SetTagWord("Varname",time.wMinute );
SetTagWord("Varname",time.wSecond );
SetTagWord("Varname",time.wMilliseconds );
如何經(jīng)由Windows對話框設(shè)置日期和時(shí)間?
可以將修改日期、時(shí)間的Windows對話框調(diào)出來,調(diào)用程序如下:
#include "apdefap.h"
void onClick(char*lpszPictureName,char*lpszObjectName,
char* lpszPropertyName)
{ ProgramExecute("C:\\WIN95\\control.exe timedate.cpl"); }
注意:您在使用此程序時(shí),需根據(jù)您的Control Panel安裝的具體路徑來填寫。
如何在WinCC里用C語言調(diào)用SQL語言?
1、創(chuàng)建一個(gè)SQL文件。
此文件在ISQL中創(chuàng)建,文件內(nèi)容是所希望執(zhí)行的SQL語句。
2、在WinCC的C Script中編寫程序調(diào)用此SQL文件,如以下程序所示:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName,
char* lpszObjectName,
char* lpszPropertyName,
UINT nFlags, int x, int y)
{
char*a="C:\\SIEMENS\\Common\\SQLANY\\ISQL-q-b-c
UID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB;
DBN=CC_testsql_99-12-03_12:48:26R;READ
E:\\testsql\\test.sql";
printf("%s\r\n",a);
ProgramExecute(a);
}
下面是一個(gè)簡單的SQL文件內(nèi)容:
select * from pde#hd#t#test;
output to E:\\test2.txt FORMAT ascii
注意:文件名及路徑中不要帶空格。
如何整點(diǎn)啟動歸檔?
在"Global Script"下的Project functions編寫函數(shù):cyclicarchive
BOOL cyclicarchive()
{
#pragma code ("kernel32.dll");
void GetLocalTime (SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
Int t1;
GetLocalTime(&time);
t1=time.wMinute;
if(t1==00)
{
SetTagBit("startarchive",1);
return(BOOL)(GetTagBit("startarchive"));
}
}
在Tagloging中的"Properties of process tag"中的"Archive Tag"tab下的Archiving type選擇Cycle-selective,在"Event"標(biāo)簽下的"Start Event"內(nèi)選擇cyclicarchive函數(shù)。
如何在按鍵組合被禁用的情況下,從WinCC運(yùn)行環(huán)境進(jìn)入WinCC Control Center?
*好是做一個(gè)按鈕,該按鈕需要用用戶權(quán)限保護(hù),在該鈕中編寫如下C-action:
低于WinCC 5.0版本:
#pragma code ("user32.dll");
BOOL SetForegroundWindow(HWND);
#pragma code();
HWND handle;
handle=FindWindow("MCPFrameWndClass",NULL);
If (!SetForegroundWindow(handle))
Printf ("\r\n SetForeground fails");
WinCC 5.0版本以及更高的版本:
#pragma code("user32.dll");
BOOL SetForegroundWindow(HWND);
#pragma code();
HWND handle;
handle=FindWindow("WinCCExplorerFrameWndClass",NULL);
If (!SetForegroundWindow(handle))
Printf ("\r\n SetForeground fails");
怎樣對一個(gè)WinCC的項(xiàng)目進(jìn)行轉(zhuǎn)換?
當(dāng)對一個(gè)V4.X版本的WinCC項(xiàng)目升級到5.X時(shí),V4.X下的項(xiàng)目必須進(jìn)行版本轉(zhuǎn)換。若使用"交叉索引"編輯器時(shí),必須保證項(xiàng)目已進(jìn)行了正確無誤的轉(zhuǎn)換。
項(xiàng)目轉(zhuǎn)換分下列幾步依次完成:
在WinCC資源管理器中,選中圖形編輯器,擊鼠標(biāo)右健。
1.全局庫的轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換全局庫"條目,系統(tǒng)會自動對全局庫進(jìn)行轉(zhuǎn)換, 轉(zhuǎn)換結(jié)束后退出。
2.項(xiàng)目庫的轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換項(xiàng)目庫"條目,確認(rèn)后系統(tǒng)自動對庫進(jìn)行轉(zhuǎn)換。
3.圖形畫面轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換畫面"條目,在彈出畫面按"確認(rèn)"后,系統(tǒng)自動進(jìn)行所有畫面的轉(zhuǎn)換。
注意:包含有"未定義對象"的畫面,如在PC機(jī)上未裝相應(yīng)對象服務(wù)器的,決不要轉(zhuǎn)換, 否則畫面會被損壞。
4.基本數(shù)據(jù)轉(zhuǎn)換
分屏向?qū)В涸赪inCC資源管理器中,打開分屏向?qū)?在基本數(shù)據(jù)項(xiàng)下)的彈出式菜單,并選擇"打開"條目。
報(bào)警記錄向?qū)В涸赪inCC資源管理器中,打開報(bào)警記錄向?qū)У膹棾鍪讲藛危ㄔ诨緮?shù)據(jù)項(xiàng)下),并選擇"打開"條目。
我用WinCC Web Navigator時(shí),為什么總是提示錯(cuò)誤信息"The maximum permissible number of user is connected to the WinCC-Server"?
您使用WinCCV5/SP1和Web NavigatorV1.0時(shí),您看到以上錯(cuò)誤信息,錯(cuò)誤原因是:
實(shí)際用戶數(shù)目超過授權(quán)數(shù)量限制。
措施:升級WebNavigator,使其能支持更多的客戶端。
缺少授權(quán),WinCC會提示您所缺少的授權(quán)。
措施:添加所缺的授權(quán)。
未將"WebNavigatorRT.exe"加在WinCC啟動列表中。
措施:將此文件加入WinCC的啟動列表中。
#pragma 預(yù)處理指令詳解
在所有的預(yù)處理指令中,#Pragma 指令可能是*復(fù)雜的了,它的作用是設(shè)定編譯器的狀態(tài)或者是指示編譯器完成一些特定的動作。#pragma指令對每個(gè)編譯器給出了一個(gè)方法,在保持與C和C++語言完全兼容的情況下,給出主機(jī)或操作系統(tǒng)專有的特征。依據(jù)定義,編譯指示是機(jī)器或操作系統(tǒng)專有的,且對于每個(gè)編譯器都是不同的。
其格式一般為: #Pragma Para
其中Para 為參數(shù),下面來看一些常用的參數(shù)。
(1)message 參數(shù)。 Message 參數(shù)是我*喜歡的一個(gè)參數(shù),它能夠在編譯信息輸出窗
口中輸出相應(yīng)的信息,這對于源代碼信息的控制是非常重要的。其使用方法為:
#Pragma message(“消息文本”)
當(dāng)編譯器遇到這條指令時(shí)就在編譯輸出窗口中將消息文本打印出來。
當(dāng)我們在程序中定義了許多宏來控制源代碼版本的時(shí)候,我們自己有可能都會忘記有沒有正確的設(shè)置這些宏,此時(shí)我們可以用這條指令在編譯的時(shí)候就進(jìn)行檢查。假設(shè)我們希望判斷自己有沒有在源代碼的什么地方定義了_X86這個(gè)宏可以用下面的方法
#ifdef _X86
#Pragma message(“_X86 macro activated!”)
#endif
當(dāng)我們定義了_X86這個(gè)宏以后,應(yīng)用程序在編譯時(shí)就會在編譯輸出窗口里顯示“_
X86 macro activated!”。我們就不會因?yàn)椴挥浀米约憾x的一些特定的宏而抓耳撓腮了
。
(2)另一個(gè)使用得比較多的pragma參數(shù)是code_seg。格式如:
#pragma code_seg( ["section-name"[,"section-class"] ] )
它能夠設(shè)置程序中函數(shù)代碼存放的代碼段,當(dāng)我們開發(fā)驅(qū)動程序的時(shí)候就會使用到它。
(3)#pragma once (比較常用)
只要在頭文件的*開始加入這條指令就能夠保證頭文件被編譯一次,這條指令實(shí)際上在VC6中就已經(jīng)有了,但是考慮到兼容性并沒有太多的使用它。
(4)#pragma hdrstop表示預(yù)編譯頭文件到此為止,后面的頭文件不進(jìn)行預(yù)編譯。BCB可以預(yù)編譯頭文件以加快鏈接的速度,但如果所有頭文件都進(jìn)行預(yù)編譯又可能占太多磁盤空間,所以使用這個(gè)選項(xiàng)排除一些頭文件。
有時(shí)單元之間有依賴關(guān)系,比如單元A依賴單元B,所以單元B要先于單元A編譯。你可以用#pragma startup指定編譯優(yōu)先級,如果使用了#pragma package(smart_init) ,BCB就會根據(jù)優(yōu)先級的大小先后編譯。
(5)#pragma resource "*.dfm"表示把*.dfm文件中的資源加入工程。*.dfm中包括窗體
外觀的定義。
(6)#pragma warning( disable : 4507 34; once : 4385; error : 164 )
等價(jià)于:
#pragma warning(disable:4507 34) // 不顯示4507和34號警告信息
#pragma warning(once:4385) // 4385號警告信息僅報(bào)告一次
#pragma warning(error:164) // 把164號警告信息作為一個(gè)錯(cuò)誤。
同時(shí)這個(gè)pragma warning 也支持如下格式:
#pragma warning( push [ ,n ] )
#pragma warning( pop )
這里n代表一個(gè)警告等級(1---4)。
#pragma warning( push )保存所有警告信息的現(xiàn)有的警告狀態(tài)。
#pragma warning( push, n)保存所有警告信息的現(xiàn)有的警告狀態(tài),并且把全局警告
等級設(shè)定為n。
#pragma warning( pop )向棧中彈出*后一個(gè)警告信息,在入棧和出棧之間所作的
一切改動取消。例如:
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
//.......
#pragma warning( pop )
在這段代碼的*后,重新保存所有的警告信息(包括4705,4706和4707)。
(7)pragma comment(...)
該指令將一個(gè)注釋記錄放入一個(gè)對象文件或可執(zhí)行文件中。
常用的lib關(guān)鍵字,可以幫我們連入一個(gè)庫文件。
每個(gè)編譯程序可以用#pragma指令激活或終止該編譯程序支持的一些編譯功能。例如,對循環(huán)優(yōu)化功能:
#pragma loop_opt(on) // 激活
#pragma loop_opt(off) // 終止
有時(shí),程序中會有些函數(shù)會使編譯器發(fā)出你熟知而想忽略的警告,如“Parameter xxx is never used in function xxx”,可以這樣:
#pragma warn —100 // Turn off the warning message for warning #100
int insert_record(REC *r)
{ /* function body */ }
#pragma warn +100 // Turn the warning message for warning #100 back on
函數(shù)會產(chǎn)生一條有**特征碼100的警告信息,如此可暫時(shí)終止該警告。
每個(gè)編譯器對#pragma的實(shí)現(xiàn)不同,在一個(gè)編譯器中有效在別的編譯器中幾乎無效。可從編譯器的文檔中查看。
如何確認(rèn)信息?
首先必須在畫面中插入報(bào)警控件,可以用以下兩種方式來確認(rèn)信息:
可以用如下的函數(shù)來確認(rèn)單條信息:
4版本和低于此版本的WinCC:BOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC:BOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)
可以用如下的函數(shù)確認(rèn)報(bào)警窗口所有可見的報(bào)警:
4版本和低于此版本的WinCC:BOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)
5版本和高于此版本的WinCC:BOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObje
如何實(shí)現(xiàn)從WinCC運(yùn)行畫面跳轉(zhuǎn)至WinCC控制中心?
*好的方式是在WinCC運(yùn)行畫面上做一個(gè)按鈕,該按鈕應(yīng)該置為密碼保護(hù),在該按鈕上設(shè)置C-action。
低于WinCC V5.0:
#pragma code("user32.dll")
Bool SetForegroundWindow(HWND);
#pragma code()
HWND handle;
Handle=FindWindow("MCPFrameWndClass",NULL);
If(!SetForegroundWindow(handle))printf("\r\n SetForeground fails");
5.0版本和高于此版本的WinCC:
#pragma code("user32.dll")
Bool SetForegroundWindow(HWND);
#pragma code()
HWND handle;
Handle=FindWindow("WinCCExplorerFrameWndClass",NULL);
If(!SetForegroundWindow(handle)) printf("\r\n SetForeground fails");
如何在WinCC中讀取計(jì)算機(jī)系統(tǒng)時(shí)間?
可以編寫如下的C-action:
#pragma code("kernel32.dll");
Void GetLocalTimes(SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
GetLocalTime(&time);
SetTagWord("Varname",time.wYear );
SetTagWord("Varname",time.wMonth );
SetTagWord("Varname",time.wDayOfWeek );
SetTagWord("Varname",time.wDay );
SetTagWord("Varname",time.wHour );
SetTagWord("Varname",time.wMinute );
SetTagWord("Varname",time.wSecond );
SetTagWord("Varname",time.wMilliseconds );
如何經(jīng)由Windows對話框設(shè)置日期和時(shí)間?
可以將修改日期、時(shí)間的Windows對話框調(diào)出來,調(diào)用程序如下:
#include "apdefap.h"
void onClick(char*lpszPictureName,char*lpszObjectName,
char* lpszPropertyName)
{ ProgramExecute("C:\\WIN95\\control.exe timedate.cpl"); }
注意:您在使用此程序時(shí),需根據(jù)您的Control Panel安裝的具體路徑來填寫。
如何在WinCC里用C語言調(diào)用SQL語言?
1、創(chuàng)建一個(gè)SQL文件。
此文件在ISQL中創(chuàng)建,文件內(nèi)容是所希望執(zhí)行的SQL語句。
2、在WinCC的C Script中編寫程序調(diào)用此SQL文件,如以下程序所示:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName,
char* lpszObjectName,
char* lpszPropertyName,
UINT nFlags, int x, int y)
{
char*a="C:\\SIEMENS\\Common\\SQLANY\\ISQL-q-b-c
UID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB;
DBN=CC_testsql_99-12-03_12:48:26R;READ
E:\\testsql\\test.sql";
printf("%s\r\n",a);
ProgramExecute(a);
}
下面是一個(gè)簡單的SQL文件內(nèi)容:
select * from pde#hd#t#test;
output to E:\\test2.txt FORMAT ascii
注意:文件名及路徑中不要帶空格。
如何整點(diǎn)啟動歸檔?
在"Global Script"下的Project functions編寫函數(shù):cyclicarchive
BOOL cyclicarchive()
{
#pragma code ("kernel32.dll");
void GetLocalTime (SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME time;
Int t1;
GetLocalTime(&time);
t1=time.wMinute;
if(t1==00)
{
SetTagBit("startarchive",1);
return(BOOL)(GetTagBit("startarchive"));
}
}
在Tagloging中的"Properties of process tag"中的"Archive Tag"tab下的Archiving type選擇Cycle-selective,在"Event"標(biāo)簽下的"Start Event"內(nèi)選擇cyclicarchive函數(shù)。
如何在按鍵組合被禁用的情況下,從WinCC運(yùn)行環(huán)境進(jìn)入WinCC Control Center?
*好是做一個(gè)按鈕,該按鈕需要用用戶權(quán)限保護(hù),在該鈕中編寫如下C-action:
低于WinCC 5.0版本:
#pragma code ("user32.dll");
BOOL SetForegroundWindow(HWND);
#pragma code();
HWND handle;
handle=FindWindow("MCPFrameWndClass",NULL);
If (!SetForegroundWindow(handle))
Printf ("\r\n SetForeground fails");
WinCC 5.0版本以及更高的版本:
#pragma code("user32.dll");
BOOL SetForegroundWindow(HWND);
#pragma code();
HWND handle;
handle=FindWindow("WinCCExplorerFrameWndClass",NULL);
If (!SetForegroundWindow(handle))
Printf ("\r\n SetForeground fails");
怎樣對一個(gè)WinCC的項(xiàng)目進(jìn)行轉(zhuǎn)換?
當(dāng)對一個(gè)V4.X版本的WinCC項(xiàng)目升級到5.X時(shí),V4.X下的項(xiàng)目必須進(jìn)行版本轉(zhuǎn)換。若使用"交叉索引"編輯器時(shí),必須保證項(xiàng)目已進(jìn)行了正確無誤的轉(zhuǎn)換。
項(xiàng)目轉(zhuǎn)換分下列幾步依次完成:
在WinCC資源管理器中,選中圖形編輯器,擊鼠標(biāo)右健。
1.全局庫的轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換全局庫"條目,系統(tǒng)會自動對全局庫進(jìn)行轉(zhuǎn)換, 轉(zhuǎn)換結(jié)束后退出。
2.項(xiàng)目庫的轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換項(xiàng)目庫"條目,確認(rèn)后系統(tǒng)自動對庫進(jìn)行轉(zhuǎn)換。
3.圖形畫面轉(zhuǎn)換
在彈出下拉菜單中選中"轉(zhuǎn)換畫面"條目,在彈出畫面按"確認(rèn)"后,系統(tǒng)自動進(jìn)行所有畫面的轉(zhuǎn)換。
注意:包含有"未定義對象"的畫面,如在PC機(jī)上未裝相應(yīng)對象服務(wù)器的,決不要轉(zhuǎn)換, 否則畫面會被損壞。
4.基本數(shù)據(jù)轉(zhuǎn)換
分屏向?qū)В涸赪inCC資源管理器中,打開分屏向?qū)?在基本數(shù)據(jù)項(xiàng)下)的彈出式菜單,并選擇"打開"條目。
報(bào)警記錄向?qū)В涸赪inCC資源管理器中,打開報(bào)警記錄向?qū)У膹棾鍪讲藛危ㄔ诨緮?shù)據(jù)項(xiàng)下),并選擇"打開"條目。
我用WinCC Web Navigator時(shí),為什么總是提示錯(cuò)誤信息"The maximum permissible number of user is connected to the WinCC-Server"?
您使用WinCCV5/SP1和Web NavigatorV1.0時(shí),您看到以上錯(cuò)誤信息,錯(cuò)誤原因是:
實(shí)際用戶數(shù)目超過授權(quán)數(shù)量限制。
措施:升級WebNavigator,使其能支持更多的客戶端。
缺少授權(quán),WinCC會提示您所缺少的授權(quán)。
措施:添加所缺的授權(quán)。
未將"WebNavigatorRT.exe"加在WinCC啟動列表中。
措施:將此文件加入WinCC的啟動列表中。
#pragma 預(yù)處理指令詳解
在所有的預(yù)處理指令中,#Pragma 指令可能是*復(fù)雜的了,它的作用是設(shè)定編譯器的狀態(tài)或者是指示編譯器完成一些特定的動作。#pragma指令對每個(gè)編譯器給出了一個(gè)方法,在保持與C和C++語言完全兼容的情況下,給出主機(jī)或操作系統(tǒng)專有的特征。依據(jù)定義,編譯指示是機(jī)器或操作系統(tǒng)專有的,且對于每個(gè)編譯器都是不同的。
其格式一般為: #Pragma Para
其中Para 為參數(shù),下面來看一些常用的參數(shù)。
(1)message 參數(shù)。 Message 參數(shù)是我*喜歡的一個(gè)參數(shù),它能夠在編譯信息輸出窗
口中輸出相應(yīng)的信息,這對于源代碼信息的控制是非常重要的。其使用方法為:
#Pragma message(“消息文本”)
當(dāng)編譯器遇到這條指令時(shí)就在編譯輸出窗口中將消息文本打印出來。
當(dāng)我們在程序中定義了許多宏來控制源代碼版本的時(shí)候,我們自己有可能都會忘記有沒有正確的設(shè)置這些宏,此時(shí)我們可以用這條指令在編譯的時(shí)候就進(jìn)行檢查。假設(shè)我們希望判斷自己有沒有在源代碼的什么地方定義了_X86這個(gè)宏可以用下面的方法
#ifdef _X86
#Pragma message(“_X86 macro activated!”)
#endif
當(dāng)我們定義了_X86這個(gè)宏以后,應(yīng)用程序在編譯時(shí)就會在編譯輸出窗口里顯示“_
X86 macro activated!”。我們就不會因?yàn)椴挥浀米约憾x的一些特定的宏而抓耳撓腮了
。
(2)另一個(gè)使用得比較多的pragma參數(shù)是code_seg。格式如:
#pragma code_seg( ["section-name"[,"section-class"] ] )
它能夠設(shè)置程序中函數(shù)代碼存放的代碼段,當(dāng)我們開發(fā)驅(qū)動程序的時(shí)候就會使用到它。
(3)#pragma once (比較常用)
只要在頭文件的*開始加入這條指令就能夠保證頭文件被編譯一次,這條指令實(shí)際上在VC6中就已經(jīng)有了,但是考慮到兼容性并沒有太多的使用它。
(4)#pragma hdrstop表示預(yù)編譯頭文件到此為止,后面的頭文件不進(jìn)行預(yù)編譯。BCB可以預(yù)編譯頭文件以加快鏈接的速度,但如果所有頭文件都進(jìn)行預(yù)編譯又可能占太多磁盤空間,所以使用這個(gè)選項(xiàng)排除一些頭文件。
有時(shí)單元之間有依賴關(guān)系,比如單元A依賴單元B,所以單元B要先于單元A編譯。你可以用#pragma startup指定編譯優(yōu)先級,如果使用了#pragma package(smart_init) ,BCB就會根據(jù)優(yōu)先級的大小先后編譯。
(5)#pragma resource "*.dfm"表示把*.dfm文件中的資源加入工程。*.dfm中包括窗體
外觀的定義。
(6)#pragma warning( disable : 4507 34; once : 4385; error : 164 )
等價(jià)于:
#pragma warning(disable:4507 34) // 不顯示4507和34號警告信息
#pragma warning(once:4385) // 4385號警告信息僅報(bào)告一次
#pragma warning(error:164) // 把164號警告信息作為一個(gè)錯(cuò)誤。
同時(shí)?
上一篇:
可編程控制器的編程步驟
下一篇:
如何延長變頻器使用壽命?
若網(wǎng)站內(nèi)容侵犯到您的權(quán)益,請通過網(wǎng)站上的聯(lián)系方式及時(shí)聯(lián)系我們修改或刪除
主站蜘蛛池模板:
亚洲国产永久精品成人麻豆
|
mm1313亚洲国产精品
|
高清dvd碟片 生活片
|
精品国产午夜福利在线观看
|
国内熟妇与亚洲洲熟妇妇
|
国产成人精品亚洲精品日日
|
国产成AV人片久青草影院
|
久久精品国产只有精品96
|
丝袜美腿亚洲综合第一页
|
国产精品大全中文字幕
|
欧美国产精品不卡在线观看
|
激情亚洲专区一区二区三区
|
99热精品毛片全部国产无缓冲
|
东京热一精品无码av
|
国产精品黄色精品黄色大片
|
A毛片终身免费观看网站
|
久久中文字幕无码一区二区
|
国产视频一区二区三区视频
|
国产精品午夜福利91
|
国产精品白丝久久av网站
|
亚洲成年轻人电影网站WWW
|
亚洲高清成人av在线
|
欧美大胆老熟妇乱子伦视频
|
亚洲精品无码日韩国产不卡av
|
亚洲人妻一区二区精品
|
人妻精品中文字幕av
|
久久综合偷拍视频五月天
|
成人精品日韩专区在线观看
|
麻豆精品一区二区视频在线
|
亚洲一区二区不卡av
|
美腿丝袜亚洲综合第一页
|
综合色一色综合久久网
|
亚洲韩国精品无码一区二区三区
|
精品熟女少妇免费久久
|
无遮高潮国产免费观看
|
无码AV中文字幕久久专区
|
人妻精品动漫h无码
|
久久不卡精品
|
国产91精品丝袜美腿在线
|
精品国产一区二区三区av性色
|
亚洲色最新高清AV网站
|