自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# Delphi開發(fā)中的DLL

開發(fā) 后端
本文介紹C# Delphi開發(fā)中的C# DLL,以及介紹TChart這個畫圖控件,它本身很強大,支持各類圖,如點線圖,柏拉圖,柱狀圖等等。

在以前用C# Delphi開發(fā)的項目中,會經(jīng)常用到TChart這個畫圖控件,它本身很強大,支持各類圖,如點線圖,柏拉圖,柱狀圖等等,加上可以輸出成 BMP,JPEG,JPG,SVG,GIF等各種格式圖片,很好用,當(dāng)時也封裝成比較獨立的C# DLL文件。這次開發(fā).NET程序正好派上用場。

C# Delphi開發(fā)幾個關(guān)鍵技術(shù)點:

1.C#要以非托管方式調(diào)用DLL

2.C#把整理好的畫圖數(shù)據(jù)生成事先定義好格式的XML文件,傳給DLL

3.C# DLL解析XML文件,根據(jù)相應(yīng)格式,要求,畫圖

4.C# DLL輸出GIF文件(經(jīng)過比較GIF圖像失真率小,且文件大小最小)

5.C#裝載GIF文件,傳到前臺展示

C# Delphi開發(fā)關(guān)鍵代碼:

  1. 以下是引用片段:  
  2. #region 定義調(diào)用Delphi寫的畫圖DLL  
  3. ///   
  4. /// 定義調(diào)用Delphi寫的畫圖DLL  
  5. ///   
  6. private class DrawChartFromDll  
  7. {  
  8. //定義DLL文件名,此文件路徑要加到系統(tǒng)Path中  
  9. private const string _fileDll = @"Chart.dll";  
  10. //調(diào)用非托管Dll,GetChartFromXMLByNet是ChartAccess.dll公開的函數(shù)名稱  
  11.  [DllImport(_fileDll, EntryPoint = "GetChartFromXMLByNet"
    CharSetCharSet = CharSet.Ansi, CallingConventionCallingConvention = 
    CallingConvention.StdCall)]  
  12. //C#中的申明  
  13.  public static extern int GetChartFromXMLByNet
    (int piChartType, string psXMLFileName, string psPriChartFileName, 
    string psSecChartFileName, string psPriHotFileName, string psSecHotFileName);  
  14. }  
  15. #endregion  
  16. public ChartResultData GetCharts
    (ChartData _ChartData, Hashtable _HotPriAdditionSeqNo, Hashtable _HotSecAdditionSeqNo)  
  17. {  
  18. //根據(jù)數(shù)據(jù)生成XML文件  
  19. string _xmlFileName = "";  
  20. ChartResultData _ChartResultData = new ChartResultData();  
  21. try  
  22. {  
  23. _xmlFileName = this.ConvertDataToXml(_ChartData);  
  24. }  
  25. catch (Exception err)  
  26. {  
  27. _ChartResultData.ErrMessage = err.Message;  
  28. }  
  29. ...  
  30. //調(diào)用DELPHI,取得返回參數(shù)  
  31. int _return = -1;  
  32. try  
  33. {  
  34.  _return = DrawChartFromDll.GetChartFromXMLByNet
    (m_chartType, _xmlFileName, _priChartFileName, 
    _secChartFileName, _priHotFileName, _secHotFileName);  
  35. }  
  36. catch (Exception err)  
  37. {  
  38. if (_return > 0)  
  39. {  
  40. //刪除臨時生成的XML文件  
  41. this.DeleteTempFile(_xmlFileName);  
  42. this.DeleteTempFile(_priChartFileName);  
  43. this.DeleteTempFile(_secChartFileName);  
  44. this.DeleteTempFile(_priHotFileName);  
  45. this.DeleteTempFile(_secHotFileName);  
  46. _ChartResultData.ErrMessage = err.Message;  
  47. return _ChartResultData;  
  48. }  
  49. else  
  50. {  
  51. //可能因為安全性問題,在頻繁連續(xù)調(diào)用DLL方法時有可能出現(xiàn)內(nèi)存保護錯誤信息,
    雖然出錯,但方法已經(jīng)正確調(diào)用并能返回正確的值,此時可以忽略此錯誤  
  52. _return = 0;  
  53. }  
  54. }  
  55. //刪除臨時生成的XML文件  
  56. this.DeleteTempFile(_xmlFileName);  
  57. ...  

【編輯推薦】

  1. 簡單介紹C#預(yù)處理
  2. 學(xué)習(xí)C#無詞尾符號經(jīng)驗談
  3. C#調(diào)用QuickTest自動化
  4. 詳解C#正規(guī)表達式
  5. C#字符串插入html標(biāo)簽
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-08-03 12:57:27

C#調(diào)用DLL

2009-08-05 16:49:42

C#中調(diào)用dll

2009-07-31 14:54:48

dll函數(shù)C#導(dǎo)出

2009-12-16 09:38:36

2009-08-07 17:12:07

C# DLL函數(shù)

2009-08-07 17:22:36

C#調(diào)用dll導(dǎo)出函數(shù)

2009-07-31 17:28:35

C#語言調(diào)用DLL

2009-08-18 16:31:19

Visual C#編寫

2011-04-08 09:52:44

C++C#DLL

2009-08-24 16:11:35

C#項目開發(fā)

2011-06-08 10:06:32

C#

2009-08-07 14:10:13

C# WebserviDelphi

2009-08-05 15:04:14

C# dll注入

2009-08-05 16:41:36

C#調(diào)用VC dll

2009-09-02 17:16:01

冒泡排序

2009-08-05 09:30:39

C#調(diào)用DLL函數(shù)

2009-08-05 09:40:02

C#調(diào)用DLL函數(shù)

2009-08-18 14:36:36

C# 操作Excel

2009-08-24 15:58:00

Visual C#生成

2009-08-05 09:22:43

C#調(diào)用VC DLL
點贊
收藏

51CTO技術(shù)棧公眾號