锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
瑙e喅鍔炴硶錛氬湪浼犻佺嚎紼婸ostMessage娑堟伅鍓嶅鏍堝尯涓婄殑鏁版嵁new涓浠芥斁鍒板爢鍖轟笂錛屽爢鍖虹殑鏁版嵁鏄▼搴忓憳鎵嬪姩鍒?br />寤哄拰鎵嬪姩鍥炴敹鐨勶紝鐒跺悗鎶婅繖浜涙暟鎹紶閫佸埌鍙︿竴綰跨▼錛岀敱鍙︿竴綰跨▼鍘繪墜鍔ㄩ噴鏀綿elete銆?br />
闂鐨勪駭鐢燂細鐢變簬宸ヤ綔綰跨▼澶勭悊鐨勭箒蹇欙紝鏈変竴浜涙暟鎹湪UI綰跨▼閫鍑烘椂榪樻病榪斿洖錛屽綋UI綰跨▼閫鍑哄悗錛屾暟鎹繑鍥?br />鐢卞伐浣滅嚎紼婸ostMessage鍒癠I綰跨▼錛孶I綰跨▼宸茬粡鎺ユ敹涓嶅埌娑堟伅錛屾晠鏈兘鎵嬪姩閲婃斁宸ヤ綔綰跨▼浼犺繃鏉ョ殑鍫嗗尯鍐呭瓨錛?br />閫犳垚鍐呭瓨娉勬紡銆?br />
鍚庢潵錛屾煡鍒板涓嬬綉绔欙細
http://stackoverflow.com/questions/3807945/mfc-data-forwarding-to-main-thread-via-postmessage
鍙戠幇PostMessage鏄湁榪斿洖鍊肩殑錛屽彂閫佸け璐ヨ繑鍥瀎alse銆?br />
鏁呬笂闈㈢殑闂鏈変簡瑙e喅鏂規硶錛?br />UI綰跨▼錛堟帴鏀剁嚎紼嬶級閫鍑哄悗宸ヤ綔綰跨▼錛堝彂閫佺嚎紼嬶級PostMessage鏄繑鍥瀎alse鐨勶紝鏁呭彲浠ュ埄鐢ㄨ繖涓繑鍥炲兼潵鍐沖畾鐢卞摢涓嚎紼嬫潵閲婃斁榪欐
PostMessage涓紶閫掔殑鍐呭瓨錛屽鏋滀紶閫佸け璐ワ紝鍒欑敱褰撳墠PostMessage鐨勭嚎紼嬭礋璐f墜鍔ㄥ洖鏀訛紝濡傛灉鍙戦佹垚鍔熷氨鐢?br />鎺ユ敹綰跨▼鏉ヨ礋璐f墜鍔ㄥ洖鏀躲?/p>
錛?錛塖U鍛戒護鐢ㄤ簬鍒囨崲鐢ㄦ埛錛屽崟鐙殑SU絳夋晥浜嶴U ROOT錛屼綔鐢ㄩ兘鏄垏鎹㈠埌ROOT鐢ㄦ埛銆?/font>
鍋囪浣犲繕璁版牴鐢ㄦ埛瀵嗙爜錛?/font>
zjg@ubuntu:~$ su
瀵嗙爜錛?
su錛氳璇佸け璐?/font>
鏅氱敤鎴鋒棤娉曟煡鐪嬫垨鏇存敼鏍圭敤鎴風殑瀵嗙爜錛?/font>
zjg@ubuntu:~$ passwd root
passwd錛氭偍涓嶈兘鏌ョ湅鎴栨洿鏀?root 鐨勫瘑鐮佷俊鎭?/font>
SUDO鍛戒護璁╀綘鍦ㄦ櫘閫氱敤鎴蜂笅鎵ц涓浜汻OOT鐢ㄦ埛涓嬬殑鍛戒護錛堝鏋滆繖涓敤鎴鋒湁鐩稿簲鐨勬潈闄愮殑璇濓級
鍔?
鎵浠ヤ綘鍙互閫氳繃sudo鏉ユ墽琛宲asswd鍛戒護騫朵慨鏀箁oot鐢ㄦ埛瀵嗙爜
鍙互鐪嬪嚭ROOT鐨勫瘑鐮佸拰鏅氱敤鎴?浣犺嚜宸卞垱寤虹殑鐢ㄦ埛)瀵嗙爜鏄袱涓笉涓鏍風殑瀵嗙爜銆?/font>
zjg@ubuntu:~$ sudo passwd root
[sudo] password for zjg: 錛忥紡杈撳叆鏅氱敤鎴穤jg鐨勫瘑鐮?br />杈撳叆鏂扮殑 UNIX 瀵嗙爜錛?
閲嶆柊杈撳叆鏂扮殑 UNIX 瀵嗙爜錛?
passwd錛氬凡鎴愬姛鏇存柊瀵嗙爜
鐜板湪浣犲氨鍙互鐢ㄦ柊瀵嗙爜鍒囨崲鍒版牴鐢ㄦ埛浜嗐?/font>
zjg@ubuntu:~$ su
瀵嗙爜錛?
root@ubuntu:/home/zjg#
濡傛灉鏅氱敤鎴鋒病鏈夌浉搴旂殑鏉冮檺錛岀敤涓婅堪鏂規硶鏇存敼鏍圭敤鎴風殑瀵嗙爜鏄涓嶉氱殑銆?/p>
錛?錛?/p>
鐢變簬su 瀵瑰垏鎹㈠埌瓚呯駭鏉冮檺鐢ㄦ埛root鍚庯紝鏉冮檺鐨勬棤闄愬埗鎬э紝鎵浠u騫朵笉鑳芥媴浠誨涓鐞嗗憳鎵綆$悊鐨勭郴緇熴傚鏋滅敤su 鏉ュ垏鎹㈠埌瓚呯駭鐢ㄦ埛鏉ョ鐞嗙郴緇燂紝涔熶笉鑳芥槑紜摢浜涘伐浣滄槸鐢卞摢涓鐞嗗憳榪涜鐨勬搷浣溿傜壒鍒槸瀵逛簬鐨勭鐞嗘湁澶氫漢鍙備笌綆$悊鏃訛紝鏈濂芥槸閽堝姣忎釜綆$悊鍛樼殑鎶鏈壒闀垮拰綆$悊鑼冨洿錛屽茍涓旀湁閽堝鎬х殑涓嬫斁緇欐潈闄愶紝騫朵笖綰﹀畾鍏朵嬌鐢ㄥ摢浜涘伐鍏鋒潵瀹屾垚涓庡叾鐩稿叧鐨勫伐浣滐紝榪欐椂鎴戜滑灝辨湁蹇呰鐢ㄥ埌 sudo銆?br />銆銆閫氳繃sudo錛屾垜浠兘鎶婃煇浜涜秴綰ф潈闄愭湁閽堝鎬х殑涓嬫斁錛屽茍涓斾笉闇瑕佹櫘閫氱敤鎴風煡閬搑oot瀵嗙爜錛屾墍浠udo 鐩稿浜庢潈闄愭棤闄愬埗鎬х殑su鏉ヨ錛岃繕鏄瘮杈冨畨鍏ㄧ殑錛屾墍浠udo 涔熻兘琚О涓哄彈闄愬埗鐨剆u 錛涘彟澶杝udo 鏄渶瑕佹巿鏉冭鍙殑錛屾墍浠ヤ篃琚О涓烘巿鏉冭鍙殑su錛?br />銆銆sudo 鎵ц鍛戒護鐨勬祦紼嬫槸褰撳墠鐢ㄦ埛鍒囨崲鍒皉oot錛堟垨鍏跺畠鎸囧畾鍒囨崲鍒扮殑鐢ㄦ埛錛夛紝鐒跺悗浠oot錛堟垨鍏跺畠鎸囧畾鐨勫垏鎹㈠埌鐨勭敤鎴鳳級韜喚鎵ц鍛戒護錛屾墽琛屽畬鎴愬悗錛岀洿鎺ラ鍥炲埌褰撳墠鐢ㄦ埛錛涜岃繖浜涚殑鍓嶆彁鏄閫氳繃sudo鐨勯厤緗枃浠?etc/sudoers鏉ヨ繘琛屾巿鏉冿紱
1.涓嬭澆qt瀹夎鍖咃紝鍒癶ttp://qt.nokia.com/downloads涓嬭澆鏈鏂扮殑鏄痲t4.7.4錛屾牴鎹畨瑁呯幆澧冧笅杞斤紝榪欓噷鏄痩inux鐜錛屽洜姝よ涓嬭澆qt-everywhere-opensource-src-4.7.4.tar.gz (.tar.gz)銆?/font>
2.鏍規嵁闇瑕佷笅杞絨t creator錛屽湪http://qt.nokia.com/downloads閮藉彲浠ユ壘鍒板畨瑁呮墍闇瑕佺殑杞歡銆?/font>
3.灝嗕笅杞戒笅鏉ョ殑qt 4.7.4瑙e帇瀹夎錛?/font>
(1)cd /tmp
(2)gunzip qt-everywhere-opensource-src-4.7.4.tar.gz
tar xvf qt-everywhere-opensource-src-4.7.4.tar
(3)cd qt-everywhere-opensource-src-4.7.4
./configure
(4)make (璨屼技鎴戠敤浜嗕笁涓挓)
(5)su -c "make install"(瑕佺敤鍒皉oot瀵嗙爜錛屾晠瑕佽緭鍏udo passwd root鍘諱慨鏀箁oot鐨勫瘑鐮?
(6)PATH=/usr/local/Trolltech/Qt-4.7.4/bin:$PATH
export PATH
4.qt creator鐨勫畨瑁咃紝榪欎釜鎺ㄨ崘涓嬭澆bin鏍煎紡鐨勫畨瑁呭寘錛岃繖涓畨瑁呮瘮杈冪畝鍗曘?br />涓嬭澆瀹屾垚鍚庣洿鎺ヨ繍琛?/qt-creator-linux-x86-opensource-2.4.0.bin瀹夎錛屽氨璺焪indows瀹夎杞歡涓鏍蜂簡錛屼笉闇瑕佸啀榪涜緙栬瘧涔嬬被鐨勪簡銆?br />鍦?/configure榪欎竴姝ヤ細闂綘瀹夎鍝竴涓増鏈紝涓涓槸open(寮婧?鐨勶紝涓涓槸commercial(鍟嗙敤)鐨勶紝榪欐椂閫夋嫨o錛岀劧鍚庤繕浼氭彁紺轟綘瑕佷笉瑕佹煡鐪嬩竴浜涗笢瑗匡紝娌″繀瑕侊紝鐩存帴杈撳叆yes鍥炶濺錛?/p>
閬囧埌闂:
1.make: g++: Command not found
make: *** [project.o] Error 127
閽堝榪欎釜闂鏄洜涓篻++娌℃湁瀹夎錛岄氳繃sudo apt-get install g++瀹夎銆?/p>
濡傛湁蹇呰榪樿瀹夎sudo apt-get install build-essential(榪欎釜鏄緷璧杇++鐨勶紝瑁呬簡榪欎釜灝變篃鎶奼++瑁呭ソ浜?
瀹夎瀹実++鍚庡啀嬈¤繍琛?/configure鍗沖彲銆?/p>
2.鍦ㄥ畨瑁単++瀹屾垚鍚庡啀嬈¤繍琛?/configure鍚庝笉浼氬啀鎶ユ湭鍙戠幇g++涔嬬被鐨勯敊璇紝鍙槸鍙堝嚭鐜頒簡
"Basic XLib functionality test failed!”
瀵逛簬榪欎釜閿欒鏃跺洜涓烘病鏈夊畨瑁厁lib搴撻犳垚鐨勶紝瀹夎鍗沖彲瑙e喅銆?/p>
棣栧厛錛歴udo apt-get install libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev
鐒跺悗錛歴udo apt-get install build-essential(鍦ㄥ墠闈㈣浜嗗悗錛屽湪榪欓噷鎴戝氨涓嶇敤瑁呬簡)
瀹夎瀹屽悗鍐嶆榪愯./configure錛屽嵆鍙『鍒╁畨瑁呫?/p>
3.鍦?/configure瀹屾垚鍚庝細鍑虹幇
To reconfigure, run 'gmake confclean' and 'configure'.
Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into /usr/local/Trolltech/Qt-4.7.4
寮濮嬪悡鎴戜竴璺籌紝浠ヤ負鍙堝嚭閿欎簡鍛紝鍚庢潵涓鐪嬶紝娌℃湁鍑洪敊錛屾槸鎻愮ず濡傛灉鍐嶆./configure璇ユ庝箞鍔炰互鍙婁笅涓姝ヨ鎬庝箞鍔炵殑銆?/p>
娌′粈涔堥棶棰樺氨涓嬩竴姝ake浜嗭紝榪欎竴姝ユ椂闂翠細鐩稿綋闀匡紝瑕佹湁鑰愬績鍟娿?/font>
typedef struct mystu
{
char * str;
func * f;
}mystu_t;
void print(char * str)
{
printf("[%s]\n",str);
}
int main(int argc, char *argv[])
{
mystu_t t;
t.str="This is a expriment";
t.f=print;
int offs=offset(mystu_t,f);
printf("&t=0x%x &t.f=0x%x offset=%d t.f=0x%x &print=0x%x\n",&t,&t.f,offs,t.f,&print);
//t.f鏄嚱鏁板湪鍐呭瓨鐨勫疄闄呭湴鍧錛岃?amp;(t.f)鏄痶涓繚瀛樿繖涓嚱鏁板湴鍧鐨勫湴鍧銆?br> /*
&t-------> -------------- 鍦板潃 -->0x22ff70 鍦ㄦ垜緙栬瘧騫沖彴&t涓?0x22ff70
| char* |鍐呭 -->"This is a expriment"
&t.f-----> -------------- 鍦板潃 -->0x22ff74 鍦ㄦ垜緙栬瘧騫沖彴&t.f涓?0x22ff74
| func* |鍐呭 -->0x401390 鏄痶.f(print)鐨勫疄闄呭湴鍧,鍦ㄦ垜緙栬瘧騫沖彴t.f涓?0x401390
--------------
*/
func * f1=*(func**)(((int)&t)+offs);//t+offs鏄痶.f鐨勫湴鍧,閭e氨鏄痜unc * 鐨勫湴鍧 錛宨nt璧蜂互杞肩殑浣滅敤
/*
&t-----------------> -------------- 鍦板潃 -->0x22ff70 鍦ㄦ垜緙栬瘧騫沖彴&t涓?0x22ff70
| char* |鍐呭 -->"This is a expriment"
((int)&t)+offs-----> -------------- 鍦板潃 -->0x22ff74 鍦ㄦ垜緙栬瘧騫沖彴&t.f涓?0x22ff74
| func* |鍐呭 -->0x401390 鏄痶.f(print)鐨勫疄闄呭湴鍧,鍦ㄦ垜緙栬瘧騫沖彴t.f涓?0x401390
--------------
鍙互鐪嬪嚭 ((int)&t)+offs灝辨槸淇濆瓨print鍦板潃鐨勫湴鍧錛屼絾緙栬瘧鍣ㄤ笉鑳界洿鎺ョ敤*瀵瑰畠鍙栧鹼紝
鎴戜滑鐭ラ亾浜嗗畠鏄痯rint鍦板潃鐨勫湴鍧鍚庯紝灝卞彲浠ュ皢瀹冨己鍒惰漿鎹㈡垚func **,鐒跺悗瀵瑰畠鍙栧鹼紝灝辨槸func *
*/
printf("real func addr = 0x%x\n", f1);
f1(t.str);
system("PAUSE");
return EXIT_SUCCESS;
}
鏂囦歡鍦ㄨ繖閲岋紝涓嬭澆鏉ョ湅姣旇緝娓呮錛?br>浠g爜鏂囦歡
鐜璇存槑錛氬湪Windows涓嬪畨瑁呬簡Cygwin
鎴戠殑NDK瀹夎鐩綍鏄細c:\cygwin\home\Dragon\Android\android-ndk-r4b
鍦?/span>Cygwin璁劇疆浜嗙幆澧冨彉閲?/span>:
NDK_ROOT=~/Android/android-ndk-r4b
export NDK_ROOT
1錛?nbsp;鍦?/span>c:\cygwin\home\Dragon\Android\android-ndk-r4b\samples\鍒涘緩涓涓枃浠跺す錛屽懡鍚嶄負Test
鍦ㄩ噷闈㈠啀鍒涘緩涓涓枃浠跺すjni錛屽湪jni鎴戜滑蹇呴』鏈夎繖鍥涗釜錛?/span>
錛?錛?span>
婧愮爜錛?/span>main.c錛?錛?span>
Ffmpeg0.6婧愮爜錛屾枃浠跺悕ffmpeg錛?錛?span>
Android.mk錛?錛?span> so鏂囦歡澶癸紝閲岄潰鏀懼ソ浜嗙紪璇戝ソ鐨?/span>lib*.so鏂囦歡
闄や簡FFMPEG婧愮爜錛岃繖浜涙枃浠舵垜宸茬粡鏀懼埌CSDN涓嬭澆浜嗐備笅杞藉湴鍧錛?/span>
http://download.csdn.net/source/2776066
2.鐒跺悗鍚姩cygwin錛?/span>
$ cd $NDK_ROOT
$ ndk-build NDK_PROJECT_PATH=$NDK_ROOT/samples/Test
灝變細浜х敓涓涓湪Test\libs\armeabi\Test
榪愯Android铏氭嫙鏈猴紝鎴戠殑鏄?/span>2.2鐗堟湰銆?/span>
鎶婃墍鏈夌敤鍒扮殑SO鏂囦歡adb push 鍒?/span>/system/lib/
鎶?/span>Test鏂囦歡adb push 鍒?/span> /system/bin/
鎶婅嫻嬭瘯鐨勬枃浠?/span>clock.avi涔?/span>adb push 鍒?/span>/system/bin/
adb shell 榪涘叆鍒?/span>Android铏氭嫙鏈恒?/span>
# cd /system/bin/
# chmod 777 Test
# Test clock.avi
鍙鎴戜滑淇敼.c鏂囦歡鍜?/span>Android.mk鏂囦歡鎴戜滑灝卞彲浠ョ紪鍐?/span>jni 鐨?/span>native鏂規硶鐢熸垚SO鏂囦歡緇?/span>JAVA璋冪敤錛屽綋浣犺皟璇曟椂濡傛灉浣犵殑JAVA紼嬪簭璋冪敤SO鏂囦歡鏃朵竴瀹氳鎶?/span>ffmpeg閲岀敤鍒扮殑SO鏂囦歡涓婁紶鍒?/span>/system/lib/涓嶇劧璋冭瘯涓嶄簡銆?/span>