几个关键技术点:
1、C#要以非托管方式调用DLL;
2、C#把整理好的画图数据生成事先定义好格式的XML文件,传给DLL;
3、DLL解析XML文件,根据相应格式,要求,画图;
4、DLL输出GIF文件(经过比较GIF图像失真率小,且文件大小最小);
5、C#装载GIF文件,传到前台展示。
library Icdll;
uses
SysUtils;
function Check22:Pchar;stdcall;
begin
result:='ok';
end;exports
Check22;
begin
end.
2.在c#中进行调用。
using System.Runtime.InteropServices; //必须引用
namespace TestDll
{
public partial class Form1 : Form
{
[DllImport("Icdll.dll")]
public static extern StringBuilder Check22();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{StringBuilder result= Check22(); //这里result就是返回值。
}}
实例后
2007年05月22日 星期二 下午 05:46
//----------------------Delphi-------------------
procedure GetSqlData(ASource: PChar; ADest: PChar; ADestSize: Integer); stdcall;
var
S: string;
begin
if ASource = nil then Exit;
S := Format('%s 路过!',[ASource]);
Move(S[1], ADest^, Min(ADestSize, Length(S)+1));
end;{ GetSqlData }
exports
GetSqlData;
//----------------------C#-------------------
[DllImport(@"TempLib.dll")]
public static extern void GetSqlData(string ASource, StringBuilder ADest, int ADestSize);
private void button1_Click(object sender, EventArgs e)
{
StringBuilder vDest = new StringBuilder(1024);
GetSqlData("Zswang", vDest, 1024);
Text = vDest.ToString();
}
小结:进行字符串返回,1.在delphi返回是pchar类型,c#中接收用StringBuilder接收,没有什么特别的注意事项,和其它的DLL基本一样,注意string换成PChar就可以了
摩尔庄园 安卓官方版v2.9.24091002S
摩尔庄园很多小伙伴一定都在小时候玩过,但随着我们年龄的增长淡
梦幻庄园最新版 官方正版v1.0.0
梦幻庄园是一款非常好玩的模拟经营类游戏,玩家在游戏中有一个属
合并梦幻岛免内购版 v2.1.0
合并梦幻岛无限内购版是游戏的破解版本,在该版本中为玩家解锁了
无悔华夏魅族版 2025最新版v3.5.194
无悔华夏魅族版是一款超级好用的模拟经营游戏。在这里玩家们需要
月影别墅官方安装包2025版 安卓版v2.3.24
月影别墅官方安装包2025版是一款匠心独具的乙女向剧情游戏,