日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

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

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

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)存保護(hù)錯誤信息,
    雖然出錯,但方法已經(jīng)正確調(diào)用并能返回正確的值,此時可以忽略此錯誤
  52. _return = 0;
  53. }
  54. }
  55. //刪除臨時生成的XML文件
  56. this.DeleteTempFile(_xmlFileName);
  57. ...
  58. }

分享名稱:C#Delphi開發(fā)中的DLL
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/ccedocc.html