91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# Delphi開發中的DLL怎么用

發布時間:2021-12-01 13:40:08 來源:億速云 閱讀:234 作者:小新 欄目:編程語言

這篇文章主要介紹C# Delphi開發中的DLL怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

C# Delphi開發幾個關鍵技術點:

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

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

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

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

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

C# Delphi開發關鍵代碼:

  1. 以下是引用片段:  

  2. #region 定義調用Delphi寫的畫圖DLL  

  3. ///   

  4. /// 定義調用Delphi寫的畫圖DLL  

  5. ///   

  6. private class DrawChartFromDll  

  7. {  

  8. //定義DLL文件名,此文件路徑要加到系統Path中  

  9. private const string _fileDll = @"Chart.dll";  

  10. //調用非托管Dll,GetChartFromXMLByNet是ChartAccess.dll公開的函數名稱  

  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. //根據數據生成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,取得返回參數  

  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. //可能因為安全性問題,在頻繁連續調用DLL方法時有可能出現內存保護錯誤信息,
    雖然出錯,但方法已經正確調用并能返回正確的值,此時可以忽略此錯誤  

  52. _return = 0;  

  53. }  

  54. }  

  55. //刪除臨時生成的XML文件  

  56. this.DeleteTempFile(_xmlFileName);  

  57. ...  

以上是“C# Delphi開發中的DLL怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平乐县| 腾冲县| 泰州市| 桐庐县| 新巴尔虎左旗| 武隆县| 义马市| 正定县| 和硕县| 邮箱| 峡江县| 巩义市| 洪雅县| 务川| 六安市| 马山县| 犍为县| 家居| 敖汉旗| 图们市| 铜鼓县| 新泰市| 连州市| 重庆市| 花垣县| 泌阳县| 灯塔市| 阜新市| 三都| 遵义市| 淳安县| 昭苏县| 文登市| 明星| 原阳县| 临城县| 绵阳市| 龙口市| 青铜峡市| 潢川县| 天水市|