如何在ASPX里面调用DELPHI写的DLL? 假如DLL里面有一个名为TEST的函数,没有参数。有办法在ASPX里面动态调用这个函数吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #region 定义调用Delphi写的画图DLL/// /// 定义调用Delphi写的画图DLL/// private class DrawChartFromDll{//定义DLL文件名,此文件路径要加到系统Path中private const string _fileDll = @"Chart.dll";//调用非托管Dll,GetChartFromXMLByNet是ChartAccess.dll公开的函数名称[DllImport(_fileDll, EntryPoint = "GetChartFromXMLByNet",CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]//C#中的申明public static extern int GetChartFromXMLByNet(int piChartType,string psXMLFileName, string psPriChartFileName, string psSecChartFileName,string psPriHotFileName, string psSecHotFileName);}#endregionpublic ChartResultData GetCharts(ChartData _ChartData,Hashtable _HotPriAdditionSeqNo, Hashtable _HotSecAdditionSeqNo){//根据数据生成XML文件string _xmlFileName = "";ChartResultData _ChartResultData = new ChartResultData();try{_xmlFileName = this.ConvertDataToXml(_ChartData);}catch (Exception err){_ChartResultData.ErrMessage = err.Message;}...//调用DELPHI,取得返回参数int _return = -1;try{_return = DrawChartFromDll.GetChartFromXMLByNet(m_chartType, _xmlFileName,_priChartFileName, _secChartFileName, _priHotFileName, _secHotFileName);}catch (Exception err){if (_return > 0){//删除临时生成的XML文件this.DeleteTempFile(_xmlFileName);this.DeleteTempFile(_priChartFileName);this.DeleteTempFile(_secChartFileName);this.DeleteTempFile(_priHotFileName);this.DeleteTempFile(_secHotFileName);_ChartResultData.ErrMessage = err.Message;return _ChartResultData;}else{//可能因为安全性问题,在频繁连续调用DLL方法时有可能出现內存保护错误信息,虽然出错,但方法已经正确调用并能返回正确的值,此时可以忽略此错误_return = 0;}}//删除临时生成的XML文件this.DeleteTempFile(_xmlFileName);}参考 Repeater 绑定数据后 如何查找无ID 的控件? 兄弟姐妹们帮我看看 问题的所在谈谈想法 思路 代码都行。。在线等。。 asp.net 访问控制 大家有没有C#.net上调用水晶报表的例子??谢谢 关于正则 替换的问题 (c#)如何把Lable2的值赋给asp:TextBox 关于错误信息显示的问题 请问关于页面刷新重复弹出窗体的问题 关于dropdownlist取值的一个问题。 关于asp.net包含文件INC的问题 急,急,急,获取上传路径 第二张贴,急、急、急、
#region 定义调用Delphi写的画图DLL
///
/// 定义调用Delphi写的画图DLL
///
private class DrawChartFromDll
{
//定义DLL文件名,此文件路径要加到系统Path中
private const string _fileDll = @"Chart.dll";
//调用非托管Dll,GetChartFromXMLByNet是ChartAccess.dll公开的函数名称
[DllImport(_fileDll, EntryPoint = "GetChartFromXMLByNet",CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
//C#中的申明
public static extern int GetChartFromXMLByNet(int piChartType,string psXMLFileName, string psPriChartFileName, string psSecChartFileName,string psPriHotFileName, string psSecHotFileName);
}
#endregion
public ChartResultData GetCharts(ChartData _ChartData,Hashtable _HotPriAdditionSeqNo, Hashtable _HotSecAdditionSeqNo)
{
//根据数据生成XML文件
string _xmlFileName = "";
ChartResultData _ChartResultData = new ChartResultData();
try
{
_xmlFileName = this.ConvertDataToXml(_ChartData);
}
catch (Exception err)
{
_ChartResultData.ErrMessage = err.Message;
}
...
//调用DELPHI,取得返回参数
int _return = -1;
try
{
_return = DrawChartFromDll.GetChartFromXMLByNet(m_chartType, _xmlFileName,_priChartFileName, _secChartFileName, _priHotFileName, _secHotFileName);
}
catch (Exception err)
{
if (_return > 0)
{
//删除临时生成的XML文件
this.DeleteTempFile(_xmlFileName);
this.DeleteTempFile(_priChartFileName);
this.DeleteTempFile(_secChartFileName);
this.DeleteTempFile(_priHotFileName);
this.DeleteTempFile(_secHotFileName);
_ChartResultData.ErrMessage = err.Message;
return _ChartResultData;
}
else
{
//可能因为安全性问题,在频繁连续调用DLL方法时有可能出现內存保护错误信息,虽然出错,但方法已经正确调用并能返回正确的值,此时可以忽略此错误
_return = 0;
}
}
//删除临时生成的XML文件
this.DeleteTempFile(_xmlFileName);}参考