using system;
using system.collections;
using system.componentmodel;
using system.runtime.interopservices;
internal class helpers
[dllimport("winmm")]
public static extern bool playsound( string szsound, intptr hmod, playsoundflags flags );
}public class sound
helpers.playsound(strfilename, intptr.zero, helpers.playsoundflags.snd_filename | helpers.playsoundflags.snd_async);
}}
}snd_loop = 0x0008這是定義,不應該改的。
helpers.playsound(strfilename, intptr.zero, helpers.playsoundflags.snd_filename | helpers.playsoundflags.snd_async|playsoundflags.snd_loop);
就是把snd_loop也或到引數中,這樣snd_loop就會整合到其他2個列舉值當中,讓3個列舉值同時起作用
你要明白playsoundflags是乙個列舉,而且這裡playsoundflags列舉是可以按位進行或運算的。
拿列舉中的前4個宣告舉例
snd_sync = 0x0000
snd_async = 0x0001
snd_nodefault = 0x0002
snd_memory = 0x0004
snd_loop = 0x0008
0x0000代表兩個位元組(等於乙個字),就是16位二進位制數字位。
為了說明這種可以按位或的列舉如何可以讓多個列舉值同時其作用,我們簡化一下,簡化成
snd_sync = 0x00
snd_async = 0x01
snd_nodefault = 0x02
snd_memory = 0x04
snd_loop = 0x08
也就是說簡化成用1個位元組的二進位制位定義
0x00轉換成十進位制就是0(16進製制0-9和十進位制0-9對應相等),換成乙個位元組8位二進位制位就是 0000 0000
0x01換成乙個位元組8位二進位制位就是 0000 0001
0x02-------------------------------------------> 0000 0010
0x04-------------------------------------------> 0000 0100
0x08-------------------------------------------> 0000 1000
看出什麼特點了嗎?
每個定義,占用8個二進位制位中的1個。
二進位制或是什麼意思呢?就是按照順序每一位進行比較,如果2個位中其中有乙個是1,結果就是1。
這樣helpers.playsoundflags.snd_async|playsoundflags.snd_loop的計算結果就是 0000 1001
如果我們是計算機的話,我們就可以這麼認為,8位二進位制位,從右向左,某一位是1的話,對應的功能就啟用,否則就不啟用。
這樣對於0000 1001,參照列舉定義,就知道snd_async和snd_loop啟用,將來我們想增加乙個snd_memory,就把它或到當前的計算中,計算結果是 0000 1101,按照上面計算機的邏輯,自然snd_async、snd_loop、snd_memory都起作用了。
說的有點囉嗦,應該能看懂吧。
xml的乙個示例
function.h cstring openfile cstring cstring getcontext cstring,int,int void str2array cstring struct xmlnode function.cpp include include include incl...
乙個示例儲存過程
create or replace procedure bm add p id varchar,p name varchar is v count number begin 檢查輸入引數是否為空 if p id is null or p name is null then p out 輸入的值為空!...
乙個uwsgi配置示例
摘自 01 02python 03127.0.0.1 9001 04 05 06 07 08 094 108 111 122000 13512 14256 15192 16 17 18 uwsgi配置檔案中的引數也可以在命令列通過uwsgi指定,配置檔案除了xml格式外,還可以寫成ini格式的,軟體...