許多
pocket pc
應用程式都需要後台程序,一種方式是:建立乙個可執行檔案並將該檔案的快捷方式放到
/windows/startup
中,這樣在重啟後啟動該程式並在後台執行。然而現有版本
windows ce
中的程序數量限制為
32,而很多機器內建的程序就有
20個左右,所以這種方法存在問題。
另一種方式是:
在services.exe
程序中新增一項
dll
服務,因為他不是乙個程序所以不會有程序限制的問題,
pocket pc
服務介面類似於
pocket pc
驅動程式介面。一項
pocket pc
服務就是乙個匯出一組函式的
dll,services.exe
程序載入這些
dll
並通過呼叫這其中的乙個函式來對它們進行初始化。
建立服務dll
1.
新增匯出函式定義。
services.exe
程序期望這些函式從各個服務
dll
匯出並呼叫它們來進行初始化並與服務進行通訊:
extern "c" dword pascal export tst_close(dword dwdata)
extern "c" dword pascal export tst_deinit(dword dwdata)
extern "c" dword pascal export tst_init(dword dwdata)
extern "c" dword pascal export tst_iocontrol(
dword dwdata,
dword dwcode,
pbyte pbufin,
dword dwlenin,
pbyte pbufout,
dword dwlenout,
pdword pdwactualout)
extern "c" dword pascal export tst_open(
dword dwdata,
dword dwaccess,
dword dwsharemode)
extern "c" dword pascal export tst_read(
dword dwdata,
lpvoid pbuf,
dword dwlen)
extern "c" dword pascal export tst_seek(
dword dwdata,
long pos,
dword type)
extern "c" dword pascal export tst_write(
dword dwdata,
lpcvoid pinbuf,
dword dwinlen)
這裡,tst是函式名稱字首,應用程式用它並通過
services.exe
來呼叫服務(此處的
tst
表示test
)。應當使用您自己的
3-字母字首來呼叫
_init
和其他的函式。2.
向tst_init
函式新增一些特殊的初始化**。這裡,可能需要建立乙個新執行緒來封裝所有的服務邏輯。
注確保tst_init
函式返回非零值,因為零返回值表示服務初始化失敗並會引起立即解除安裝服務
dll。
在登錄檔中註冊服務
為了使在系統啟動時自動啟動服務,您應當向登錄檔
hkey_local_machine/services/service
項新增乙個唯一命名的子項,並指定下面的值:
order : reg_dword •
services.exe
載入各項服務的次序。首先載入次序最低的服務。
dll : reg_sz •
載入動態鏈結庫
(dll)
檔案。只有檔名而沒有路徑。該
dll
應當位於
/windows
資料夾中。
keep : reg_dword •
對於應當在後台執行的服務
keep
必須為1
,如果keep = 0
,那麼在初始化後將會立即解除安裝該
dll。
prefix : reg_sz •
從服務dll
匯出函式的字首(而不是
***_init
中的***
,等等)。必須是
3 個符號。
index : reg_sz •
服務索引(設定為0)。
displayname : reg_sz •
顯示服務名稱。
description : reg_sz •
顯示服務的說明。
context : reg_dword •
傳遞給初始化例程的初始值(必須為0)。
示例如下:
[hkey_local_machine/services/myserv]
"dll"="tst.dll"
"order"=dword:8
"keep"=dword:1
"prefix"="mys"
"index"=dword:0
"context"=dword:0
"displayname"="sample mfc service"
"description"="sample service demonstratig mfc usage"
Samba服務的使用
安裝samba服務 root localhost yum install y samba 配置samba的配置檔案 etc samba smb.conf。修改 global 中的內容如下 global workgroup samba security user passdb backend tdbs...
q服務的使用
1.建立乙個service,去伺服器讀取資料 q 是內建服務,所以可以直接使用 return success function data,status,headers,config error function data,status,headers,config return deferred.p...
SFTP服務的使用!!
在client端安裝xshell或者securecrt等具有sftp檔案傳輸功能的軟體,在伺服器端安裝好sftp服務並啟動,就可以用sftp傳輸檔案了!from 舉例,如遠端主機的 ip 是 202.206.64.33或者是網域名稱www.hebust.edu.cn,使用者名稱是 fyt 在命令列模...