re: 獲取手機短信和彩信號碼的方法 frank.sunny 2010-11-29 10:42
@Skill
不知道什么意思啊,該方法適用于S60 3rd以后的機型,2nd機型我沒有試過,不過照理應該也可以,畢竟mtm在S60中變化不大
@peng_LX
不是可以下載嗎?在文檔末尾,下次不理睬這種行為了
re: 如何在第三版上實現開機自啟動 frank.sunny 2009-03-13 20:46
首先,不妨建議你裝到其他手機上試一下,看能否可行
其次,N95好高級的,將設備號改成0x102032BE試試看可行不
最后,說句實話,我也快小半年沒搞過symbian,手上沒有智能手機,建議你去論壇看看,如果你真要發郵件給我,那就發frank.sunny@163.com,不過真的未必幫得上忙
re: 如何在第三版上實現開機自啟動 frank.sunny 2009-03-11 21:09
本人不用qq
你如果方便就貼出代碼或者對照文章仔細查查你哪里不對吧?
re: Windows Mobile 打包過程 frank.sunny 2008-10-23 18:29
re: @轉 畢業奮斗八年成功后有感,給年輕人的10個忠告 frank.sunny 2008-10-22 14:01
最近的事件證明了下,博主的第十條對我有點啟迪,不過嘗試過失敗了,也未必就不好,每個人不可能做到每一步正確
re: [整理]虛擬繼承入門 frank.sunny 2008-10-16 22:28
@giscn
的確,這個技術雖然從OO角度來說是存在的,但是我們的確應該避免,說真的,工作了這么久也沒有接觸過,昨天筆試遇到了這么個概念,才想起翻出來看看,而且要搞透它涉及的OO概念需要很全面很扎實,我也就在別人基礎上入入門而已
re: 虛繼承與虛基類的本質 frank.sunny 2008-10-16 18:16
語法語義上的解釋很連貫,我能看懂
但是模型和性能方面,可能我功力還不夠吧
總得來說,讓我收獲不小
整理得非常好
不過對隱藏的概念應該還可以簡化為:基類成員函數中,不滿足覆蓋條件的派生類同名成員函數,都視為隱藏(既基類方法不能被派生類繼承使用)。
而顯然滿足覆蓋的充要條件是:
(a)在基類中函數聲明的時候有virtual關鍵字
(b)基類中的函數和派生類中的函數聲明一模一樣即函數名,參數,返回類型都一樣
re: 從線程角度看AO框架 frank.sunny 2008-10-12 08:19
@luke
謝謝luke,你的提點很有用,我對Windows核心編程之前了解的并不多,在你提點下,又去查了下
進程通常被定義為一個正在運行的程序的實例
線程是cpu分配的基本單位
進程是不活潑的。進程從來不執行任何東西,它只是線程的容器。線程總是在某個進程環境中創建的,而且它的整個壽命期都在該進程中。單個進程可能包含若干個線程,所有這些線程都“同時”執行進程地址空間中的代碼。
這個可能大家都知道的
纖程是以用戶方式代碼來實現的,內核并不知道纖程,并且它們是根據用戶定義的算法來調度的。由于你定義了纖程的調度算法,因此,就內核而言,纖程采用非搶占式調度方式。
需要了解的下一個問題是,單線程可以包含一個或多個纖程。就內核而言,線程是搶占調度的,是正在執行的代碼。然而,線程每次執行一個纖程的代碼—你決定究竟執行哪個纖程。
雖然我不知道symbianOS內核開發的時候是怎么樣的,但是我根據symbian活動對象的原理來分析,的確應該就是“纖程”的影子,再次感謝luke的提點
自己再來添點東西
中秋上來兩天因為這個轉換的事情郁悶到了現在,由于開發時用到了2nd版本,而且是C/S架構的,Server在3rd跑得好好的,到了2nd上運行到PrepareToConvertToOrFromL老是崩潰,后來將mmp中的EPOCSTACKSIZE設成為0x5000程序就ok了,與真正的CCnvCharacterSetConverter沒有關系
re: 如何實現程序的前后臺運行切換 frank.sunny 2008-08-28 10:28
以上這個實例之所以放在HandleForegroundEventL函數中,只是為了直觀和便于理解
在具體編程時,程序需要切換的時候可以遍歷任務列表,讓找到的任務切換到前臺。假如某些程序做了優化任務列表隱藏了的話,我們可以考慮在進程列表內進行查找,然后將這個任務通過SendToBackground和BringToForeground函數進行切換
re: MSP430的時鐘問題 frank.sunny 2008-08-19 12:07
@喜歡】
不好意思,一年多沒搞了,具體的datasheet都留在公司了,可以參看下跟TimeA相關的寄存器設置
具體實現思路,可以參考:先設置MCLK和SMCLK為DCO,然后TimeA選擇為MCLK或SMCLK
@selwin
看你估計是熬夜的人,沒有看到文中的鏈接地址吧
以前文中沒有給出下載才要發送,后來考慮大家需要,已經添加下載附件了
re: 如何在第三版上實現開機自啟動 frank.sunny 2008-05-28 15:57
這就對了嗎,默認的mmp在group文件夾中,自然默認的資源路徑也在group文件夾下了
在START RESOURCE [ECA93FBE].rss
TARGETPATH \private\101f875a\import
HEADER
END
前加上代碼
SOURCEPATH ..\data
這樣就可以放在data下面了
其實這些都是一個形式,只要了解mmp的編寫就知道是怎么回事情了
re: 如何在第三版上實現開機自啟動 frank.sunny 2008-05-27 17:48
@ldta100
沒遇到過,不介意的話,可以把mmp文件內容給我看下,懷疑是mmp中路徑的問題
re: 如何在第三版上實現開機自啟動 frank.sunny 2008-05-27 11:14
@ldta100
AutoStart.exe是你需要自啟動的程序,也就是你本人的執行程序名稱,好比你建了一個工程HelloWorld,那么這個就是HelloWorld.exe
再回答上一個問題,假如你的程序為HelloWorld.exe,那么或許還有一個其它程序叫Hello.exe,如果你想自啟動Hello.exe而將代碼修改為
#include <startupitem.rh>
RESOURCE STARTUP_ITEM_INFO dispatcher
{
executable_name = "!:\\sys\\bin\\Hello.exe";
recovery = EStartupItemExPolicyNone;
}
那么將不能實現需求
應用程序的id,如果這個程序不是你開發的,你可以裝個FExploorer查看得到
我懷疑樓上應該是搞漢化之類的吧,在這一塊,本人實在幫不上忙,因為我沒有做過
re: 如何在第三版上實現開機自啟動 frank.sunny 2008-05-23 01:36
@CJQ
不知道你是不是搞開發的,如果是開發的,那看不懂的話,哪里不明白,你明說
沒用搞過symbian S60 SDK開發的話,那我也不知道該如何詳細解釋了,很抱歉
re: C中如何調用C++函數 frank.sunny 2008-04-15 14:48
@david_fluid@msn.com
沒看明白你的意思,沒有設置類的實例對象,自然是NULL的啊,你想它的值是多少啊?
而且本實現call_C_f_i和call_C_f_d只是一個接口函數
re: 描述符轉換 frank.sunny 2008-03-20 14:28
不知道閣下如何聯系,想問下無bom和有bom具體是什么關系啊
我不懂呢,查了下有bom多了內容為“FFFE”,對吧,但是有什么用,能告知下嗎
re: 描述符轉換 frank.sunny 2008-03-20 13:27
不好意思,剛剛午睡下
你這樣是不對的,“_LIT8(KOpentoMap8, "返回我的最愛");"中的"返回我的最愛"是GBK編碼的,而_LIT8并非轉化為utf-8的,仍然是GBK編碼的。這個在symbian中現在一般不推薦使用,只針對ASCII碼時是適用的。
關于GBK轉化到Unicode另外有代碼實現的,也怪自己偷懶老是沒有整理這個東西,我有時間整理下吧。
re: 描述符轉換 frank.sunny 2008-03-20 12:12
不知道你是怎么考慮的,照理“_LIT8(KOpentoMap8, "返回我的最愛");”這個語句應該是“_LIT(KOpentoMap8, "返回我的最愛");”吧 ?
我不是很清楚你要實現什么目的
re: 描述符轉換 frank.sunny 2008-03-20 11:58
閣下連耗時與否都做過比較了,非常感激,但是不知道具體是怎樣耗時法,本人未做過這方面的實驗。
照理轉成utf8應該無問題啊,不知道怎么聯系閣下,我的郵箱是:frank.sunny@163.com
re: 再談sizeof()的問題 frank.sunny 2008-03-04 11:12
非常感謝,說實話,我也不幸中招了
死得很慘,慚愧一下
re: 描述符轉換 frank.sunny 2008-03-04 10:50
@myh
好久沒來更新了,今天在郵箱里看到來自博客園的郵件感覺好親切
謝謝myh兄,還自己去做過實驗,其實8位到16位的前兩個原則只是保證在內存塊中數據一致,不放你可以自己調試看看內存里面內容,但是你在顯示的時候8位和16位的編碼不一樣自然就會出現亂碼了
其實這個問題還是涉及編碼的問題,由于后來項目緊就一直沒有更新博客了,myh兄可以采用原則3和4,肯定不會出現亂碼的,并且如果是中文,在模擬器上如果采用了中文SDK是不會出現亂碼的,在手機上可能還會出現亂碼,這個只能以后詳細解說了
再次感謝myh兄參與討論
re: C++的static關鍵字(轉載) frank.sunny 2007-12-14 10:27
其實昨天部門老大找我和另外一個同事聊天,聊起這個靜態變量的問題,老大問我們靜態全局變量放在哪里的,我就回答說是靜態存儲區,老大就說其實沒有靜態存儲區,只有堆區和棧區,那想了下應該是在棧區的吧
后來跟我一個同學聊天,問他關于這個問題,他說可以搞個Demo程序看看,后來告知我說靜態全局變量是在棧區,而且在普通棧區的后面,我也半信半疑,今早跟一個同事聊天,又說是在bss內,呵呵,小問題,還有大學問,搞明白了VC還可以查看并生成匯編代碼,以后慢慢研究
re: 讓編譯器生成ASM文件及Map文件 frank.sunny 2007-12-14 10:24
非常感謝指點迷津,這個東西,我查了好久才在這里查到,蠻有用的
re: C中如何調用C++函數 frank.sunny 2007-12-08 16:00
@Merlin Ran
其實你所提到的問題,我老早就想到了,但是之前編譯通不過,具體代碼在此鏈接下,錯誤消息你自己編譯看看吧,我不知道你是怎么編譯通過的,如果你編譯通過了,最好可以給份代碼在我郵箱里可以嗎?
http://m.shnenglu.com/Files/franksunny/cCallCppDemoErr.rar
我的郵箱:frank.sunny@163.com
re: C中如何調用C++函數 frank.sunny 2007-11-30 21:01
@夢在天涯
不知道怎么通知你,已經有個實例了,非常感謝你的指出,否則我就那么蒙混過去了
同時感謝大家的關注,希望對實例工程提出更多想法。
re: 描述符Descriptors概念和使用 frank.sunny 2007-10-21 10:19
@Minidx全文檢索
呵呵,編譯后一般都是APP的,但是也有exe的控制臺程序,手機Symbian OS都是以dll的方式調用。不過慚愧至今還沒有試過將exe的控制臺程序,移到手機上去試過。
不管怎么樣要移到手機上,得要打包成sis才可以。
這個問題是關于symbian的文件問題,如果你感興趣,可以看看我前面有篇Symbian資源文件解析,文后涉足了下各類Symbian文件
不過這里討論描述符,別讓我跑題了哦,呵呵
謝謝參與
總得來說可能現在這里搞Symbian的人還是不多啊
re: 描述符Descriptors概念和使用 frank.sunny 2007-10-21 09:36
@Minidx全文檢索
謝謝您來哦,不好意思的很,昨天一天都沒上來過,所以本來想寫的二也沒有完成,今天早上起來看到你的回復。簡單的說Symbian是不支持STL的,但是它有自己的與容器相關的類。
至于執行文件的要求,我不知道你指的是什么?
re: 無符號變量居然也能輸出-1 frank.sunny 2007-10-18 12:19
果然是這樣子,謝謝螞蟻
我順著你的符號位擴展的線索網上搜了一下,發現原來有本入門級的書就講這個的,
http://book.csdn.net/bookfiles/169/1001697518.shtml
不知道大家有沒有看過,好的話,我也去弄一本,感覺在學校那會沒人跟我提到過有這么一個術語呢,是不是有需要空閑時拿來翻翻
re: 無符號變量居然也能輸出-1 frank.sunny 2007-10-18 10:45
@Minidx全文檢索
樓上謝謝你的關注,咱們討論討論哦
像你所說的方法,進過運算,默認0xFFFF是int型的,所以是先計算了一下的,我現在需要考慮的是直接賦值,也就是說如果我想得到正確的值,我默認可以
temp6 = (unsigned short)temp2強轉一下就可以了,不用運算。
我想知道short型的變量賦給int型的時候,是什么樣的機制,還有就是有符號和無符號的機制是什么樣的?
其次就是我是在Windows的VC6環境下調試的,是不是其它環境下也是將0xFFFF變成了0xFFFFFFFF了?
re: 無符號變量居然也能輸出-1 frank.sunny 2007-10-18 09:41
其實昨天寫了這個東西也沒有太去細想,今天看到有人回復,我就跟蹤內存調試了下,其實執行到temp6和temp7賦值時,內存中實際存儲的是4294967295(也即FFFFFFFF),所以如果不用“%d”輸出,改用“%u”輸出的話,結果也不是65535,而是4294967295。
當然沒有“%ud”這種輸出,大概是樓上筆誤吧。
至于為什么賦值時賦成FFFFFFFF,而不是0000FFFF,我也不是很清楚,我自己剛開始以為初始化問題,所以先將temp6 = 0;再用temp6 = temp2;發現結果還是一樣。這個問題還望高手指點一下啊
re: IP地址與子網掩碼 frank.sunny 2007-09-28 09:00
@空情鄰
你想問最后一個可用的C類網IP地址吧
我想應該是,這個看過文檔應該能算出來的啊,關鍵是你根據給的大網的IP來算廣播地址,廣播地址減1就是最后一個IP地址了。
不知道你干嘛用,基礎知識你也可以看看
http://www.qqread.com/net-knowledge/h171766708.html,以及相關網頁
re: IP地址與子網掩碼 frank.sunny 2007-09-28 08:51
@114668170
這位仁兄,此文雖然不是我寫的,我也是轉載別人的,但是我不知道你對子網掩碼的理解是怎樣,不知道你贊同“掩碼的左邊部分一定要是全為1且中間不能有0出現”這個觀點不?
再有,我不知道你贊同“在得到網絡號的基礎上,將網絡號右邊的表示IP地址的主機部分的二進制位全部填上1,再將得到的二進制數轉換為十進制數就可以得到廣播地址”這個觀點不?
歡迎進行討論,前陣子工作沒定下來,所以一直漂,沒關心這個空間,不好意思,回晚了
re: Symbian編程起步 frank.sunny 2007-09-24 08:05
在Nokia官方網站就有,你如果真想下google一下也就有了,SDK又不用收錢,下一個不難。
re: SYMBIAN UIQ 開發平臺搭建 frank.sunny 2007-09-07 14:22
原來你去年就搞Symbian了啊,我才剛開始學習,不過我是在VC環境下,謝謝分享經驗
re: MSP430入門 frank.sunny 2007-07-27 10:33
@dre
因為ACLK是32KHz的啊,自然一秒需要計數32*1024 = 32768次啊
re: 網訊筆試歸來 frank.sunny 2007-03-05 22:27
@tx7do
的確如你所說,我也長見識了,呵呵
謝謝你
re: 網訊筆試歸來 frank.sunny 2007-03-05 17:01
謝謝如上各位指點,我以后用代碼時背景改成灰色好了。
根據大家的建議,我后來改了下代碼,改成如下方式:
String::String(const char* m_char) :m_Data(NULL)
{
int m_nLength = strlen(m_char) + 1;
m_Data = new char[m_nLength];
strcpy(m_Data, m_char);
}
String::String(const String &Str) : m_Data(NULL)
{
int m_nLength = strlen(Str.m_Data) + 1;
m_Data = new char[m_nLength];
strcpy(m_Data, Str.m_Data);
}
個人還參考了下memcpy和strcpy的區別,也沒說哪個執行效率高些,當然能簡化就簡化,
re: 由一道面試題來看Struct的對界(再談結構) frank.sunny 2006-12-26 20:59
謝謝樓上的大俠提點,在你的指點下,認真看了下對齊的東西,你說的也不是很對
上面的題按4邊界對齊的話,也要考慮順序的即 1+(3)+ 4 + 1 = 9
(9 / 4 +1) * 4 = 12
也就前一個類型根據后一個類型擴展
具體我再附上別人的源代碼。
struct DATA1
{
char c1; //偏移量0,累積size = 1
char c2; //偏移量1,累積size = 1 + 1 = 2
short si; //偏移量2,累積size = 2 + 2
};
struct DATA2
{
char c1; //偏移量0,累積size = 1
short si; //偏移量1 + (1),累積size = 1 + (1) + 2 = 4
char c2; //偏移量4,累積size = 4 + 1 = 5,但按最大長度sizeof(short) = 2對齊,故最后取6
};
struct DATA3
{
char c1; //偏移量0,累積size = 1
double d; //偏移量1 + (7),累積size = 1 + (7) + 8 = 16
char c2; //偏移量16,累積size = 16 + 1 = 17,但按最大長度sizeof(double) = 8對齊,故最后取24
};
#pragma pack(push,1) //強制1字節對齊
struct DATA4
{
char c1; //偏移量0,累積size = 1
double d; //偏移量1,累積size = 1 + 8 = 9
char c2; //偏移量9,累積size = 9 + 1 = 10
};
#pragma pack(pop) //恢復默認對齊方式
struct DATA5
{
char c1;
double d;
char c2;
};
void main()
{
cout << "sizeof(DATA1) = " << sizeof(DATA1) << endl;
cout << "sizeof(DATA2) = " << sizeof(DATA2) << endl;
cout << "sizeof(DATA3) = " << sizeof(DATA3) << endl;
cout << "sizeof(DATA4) = " << sizeof(DATA4) << endl;
cout << "sizeof(DATA5) = " << sizeof(DATA5) << endl;
}
re: C/C++結構體的一個高級特性――指定成員的位數 frank.sunny 2006-10-26 09:39
@清風雨
其實題目是沿用原作者的,我也是學習用的,他本人就是搞嵌入式的,我覺得這個可以搞懂些變量底層的東西
謝謝大俠關心啊,呵呵
re: 關于程序職業的幾個方向 frank.sunny 2006-10-25 23:54
主要還是講嵌入式,不錯不錯
re: C/C++結構體的一個高級特性――指定成員的位數 frank.sunny 2006-10-20 21:04
非常感謝樓上不留名的大俠指點,我還算是個新手,謝謝你一語道破了,這只是一個“位域”概念,本人搜索了一下這一概念,發現有一個人總結的還比較可以的
總結如下:
使用位域的主要目的是壓縮存儲,其大致規則為:
1) 如果相鄰位域字段的類型相同,且其位寬之和小于類型的sizeof大小,則后面的字段將緊鄰前一個字段存儲,直到不能容納為止;
2) 如果相鄰位域字段的類型相同,但其位寬之和大于類型的sizeof大小,則后面的字段將從新的存儲單元開始,其偏移量為其類型大小的整數倍;
3) 如果相鄰的位域字段的類型不同,則各編譯器的具體實現有差異,VC6采取不壓縮方式,Dev-C++采取壓縮方式;
4) 如果位域字段之間穿插著非位域字段,則不進行壓縮;
5) 整個結構體的總大小為最寬基本類型成員大小的整數倍。
樓上木葉流水兄,看過這個總結不知道是否有更清晰的了解啊,可以看他網頁
http://blog.csdn.net/jiyucn/archive/2006/07/01/862085.aspx