日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
C#Delphi開發(fā)中的DLL

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

創(chuàng)新互聯(lián)是一家專注于成都網站設計、成都做網站與策劃設計,三亞網站建設哪家好?創(chuàng)新互聯(lián)做網站,專注于網站建設十多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:三亞等地區(qū)。三亞做網站價格咨詢:18980820575

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

1.C#要以非托管方式調用DLL

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

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

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

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

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

 
 
 
  1. 以下是引用片段:
  2. #region 定義調用Delphi寫的畫圖DLL
  3. /// 
  4. /// 定義調用Delphi寫的畫圖DLL
  5. /// 
  6. private class DrawChartFromDll
  7. {
  8. //定義DLL文件名,此文件路徑要加到系統(tǒng)Path中
  9. private const string _fileDll = @"Chart.dll";
  10. //調用非托管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. //調用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ù)調用DLL方法時有可能出現(xiàn)內存保護錯誤信息,
    雖然出錯,但方法已經正確調用并能返回正確的值,此時可以忽略此錯誤
  52. _return = 0;
  53. }
  54. }
  55. //刪除臨時生成的XML文件
  56. this.DeleteTempFile(_xmlFileName);
  57. ...
  58. }

本文標題:C#Delphi開發(fā)中的DLL
瀏覽路徑:http://www.5511xx.com/article/ccedocc.html