久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

小試Linux下C#編程(轉(zhuǎn))

 franklinfj 2013-08-05

小試Linux下C#編程

接觸Linux已經(jīng)有一段日子了,,從DebianUbuntuRedhatFedora,,再到SUSE,桌面從GNOMEKDE,。感覺Linux還真是不錯,,桌面挺好看的,應(yīng)用軟件也挺多的,。終于忍不住想要自己在Linux下寫個小程序看看了,。OK,有想法就能付諸實現(xiàn),,做個簡單的WinForm程序吧,,功能是使用調(diào)用遠程天氣預報WebService(http://webservice./WebServices/WeatherWS.asmx?wsdl)。

寫GUI程序得有一個現(xiàn)成的UI Framework,,那么該用哪個呢,?Google了一下,有很多答案,,不過引起我注意的是Linux下面可以通過Mono運行時來跑.NET Framework的程序,。這讓我很驚訝,也很好奇,。驚訝的是.NET Framework終于可以實現(xiàn)“跨平臺”了,,好奇的是效果怎么樣,,真的能用嗎?于是使用VS2010 C#.NET創(chuàng)建WinForm工程,,添加Web引用,,寫幾行調(diào)用代碼,華麗麗的完工,。且看一下Windows上面的運行效果,。

image

接著直接復制binary到Ubuntu下面,嘗試運行,。沒成功,,出錯了。,。,。

image

原來是.NET Framework版本問題,VS2010默認是4.0,。那么我試試2.0,,再copy過去,打開,,還是不行,。。,。

image

嗯,。。,。這次是System.Windows.Forms.dll沒有找到,。查了一下Mono的GAC,確實沒有這個dll,。不明白為什么沒有,,Google一下,發(fā)現(xiàn),,原來mono-winform是一個額外的包,。使用Sympatic Package Manager自動下載安裝了如下包,終于可以運行了,。

libgluezilla (version 2.4.3-2) will be installed
libmono-accessibility2.0-cil (version 2.4.4~svn151842-1ubuntu4) will be installed
libmono-webbrowser0.5-cil (version 2.4.4~svn151842-1ubuntu4) will be installed
libmono-winforms2.0-cil (version 2.4.4~svn151842-1ubuntu4) will be installed

image

亂碼。,。,。不對,是框框碼,,不是亂碼,。再Google一下,,完了,貌似沒解決方案,,除非把源碼挪到Linux下面用mono msc編譯,,還得指定編譯時-codepage:utf8。

文章就先寫到這里,,等我找到更好的解決辦法時再更新此文,,也請“知情人士”給出解決方案,謝謝,。下次我會寫一篇用C++開發(fā)同樣功能的跨平臺的小程序,。

分類: .NET/Mono
標簽: C#, mono, ubuntu
0
0
(請您對文章做出評價)
下一篇:小工具開發(fā)筆記—IE自動填表器—第一篇:你好,世界
posted @ 2010-08-25 23:34 Miles Chen 閱讀(1601) 評論(5)  編輯 收藏

  
#1樓 2010-10-08 13:56 | ixpqq  
今天也是在Ubuntu下運行了一個在VS2010寫的winForm程序,。也是出現(xiàn)你這樣的狀況,在Google搜索,,找到了你的日志,。
也是沒有解決,但是又找到一篇文章
http://forum./viewtopic.php?f=88&t=201283&start=0
說是字體的原因,。把windows的宋體復制到Ubuntu ~/.fonts下然后
fc-cache -f一下,。再運行還是不行。
后來在VS里面把字號改了一下,,再編譯就可以正常顯示了,。或者指定一個其他的字體,,總之就是默認的不行,。還沒解決這個,,,希望這個對你有用,,并且能夠找到進一步的解決。
  
#2樓 2010-10-08 14:30 | ixpqq  
繼續(xù)實驗,,更改一下Form的字體就可以了,,整個Form里面其他的控件中文都顯示正常,也就是說,,在窗體設(shè)計器生成的代碼里面有
this.Font = new System.Drawing.Font("宋體", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

來指定一下字體就可以了,,因為VS2010默認沒有為控件指定字體。
現(xiàn)在看Form是沒問題了,,字體顯示正常,!
但是MessageBox代碼顯示對話框里面還是方框。期待解決辦法,。

System.Windows.Forms.MessageBox.Show("漢字");
還是不行,,用Mono在Linux下編譯都不行,。頑強的顯示方框。
  
#3樓[樓主] 2010-10-08 15:52 | Miles Chen  
引用ixpqq:
繼續(xù)實驗,,更改一下Form的字體就可以了,,整個Form里面其他的控件中文都顯示正常,也就是說,,在窗體設(shè)計器生成的代碼里面有
this.Font = new System.Drawing.Font("宋體", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

來指定一下字體就可以了,,因為VS2010默認沒有為控件指定字體。
現(xiàn)在看Form是沒問題了,,字體顯示正常,!
但是MessageBox代碼顯示對話框里面還是方框。期待解決辦法,。

System.Windows.Forms.MessageBox.Show("漢字");
還是不行,,用Mono在Linux下編譯都不行。頑強的顯示方框,。

很高興看到有人對這個領(lǐng)域感興趣:)
據(jù)我所知,,WinForm并不是一個理想的跨平臺框架技術(shù)。事實上,,Linux上開發(fā)GUI程序更多的使用GTK,,wxWidget或者QT。此三者都是可以跨Windows/Linux/Mac平臺的,,甚至某些移動平臺,。
對于熟悉C#的程序員來說,GTK#也許是一個不錯的選擇,,簡單易用,,所見即所得,MonoDevelop好像默認會安裝這個,。
  
#4樓 2010-10-27 12:33 | fdlmdark[未注冊用戶]
引用ixpqq:
繼續(xù)實驗,,更改一下Form的字體就可以了,整個Form里面其他的控件中文都顯示正常,,也就是說,,在窗體設(shè)計器生成的代碼里面有
this.Font = new System.Drawing.Font("宋體", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

來指定一下字體就可以了,因為VS2010默認沒有為控件指定字體,。
現(xiàn)在看Form是沒問題了,,字體顯示正常!
但是MessageBox代碼顯示對話框里面還是方框,。期待解決辦法,。

System.Windows.Forms.MessageBox.Show("漢字");
還是不行,用Mono在Linux下編譯都不行。頑強的顯示方框,。

查了下MessageBox.Show最終是通過Win32API實現(xiàn)的,MONO現(xiàn)在只支持一小部分的WIN32API,。如果通過WINE+MONO FOR WINDOWS應(yīng)該可以解決,,但是效率。,。
  
#5樓[樓主] 2010-10-27 14:32 | Miles Chen  
引用fdlmdark:
查了下MessageBox.Show最終是通過Win32API實現(xiàn)的,,MONO現(xiàn)在只支持一小部分的WIN32API。如果通過WINE+MONO FOR WINDOWS應(yīng)該可以解決,,但是效率,。。


WINE其實是一種很不優(yōu)雅的解決方案,,既稱不上是模擬器,,又不算是一個虛擬機。安裝配置繁瑣,,嚴重不支持國際化,。所以幾乎沒有太大價值。

Windows內(nèi)部是Unicode(UTF-16)編碼的,,而Linux內(nèi)部是UTF-8編碼,。這使得跨平臺應(yīng)用程序國際化方案非常難實現(xiàn),直接導致開發(fā)人員為了跨平臺的國際化得專門給Windows使用wchar_t,,而Linux使用char,。。,。

其實大部分知名應(yīng)用程序(如UltraEdit, IconWorkshop, Everest, UltraISO等)在Windows平臺上使用的都是“偽國際化”,。也就是說顯示文字所對應(yīng)的區(qū)域設(shè)置必須和系統(tǒng)區(qū)域設(shè)置一致,不然就亂碼,。這讓“國際化”三個字情何以堪,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多