您的位置:首页 > 其它

vc做的供其他语言调用的dll的例子 (传递的是字符串格式的参数)

2012-11-08 17:09 543 查看
VC 工程

char* p = NULL;

extern "C" _declspec(dllexport)
char* _stdcall output_number(char* aa)
{

CString s = aa;
s += "abcd";

int nlen = s.GetLength();
if(p != NULL)
{
delete[] p;
p = NULL;
}
p = new char[nlen + 1];

p[nlen] = 0;

memcpy(p,s.GetBuffer(0),s.GetLength());

return p;

}
extern "C" _declspec(dllexport)
void _stdcall deleteaa()
{
if(p != NULL)
{
delete[] p;
p = NULL;
}
}

调用方:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication4
{
public static class Class1
{
[DllImport("pb.dll")]
public static extern string output_number( string str);

[DllImport("pb.dll")]
public static extern void deleteaa();
}
}

string aaa;
//char* aaa;
private void button1_Click(object sender, EventArgs e)
{
string s = "256\0";
aaa = Class1.output_number("2567");
MessageBox.Show(aaa);

}

private void button2_Click(object sender, EventArgs e)
{
Class1.deleteaa();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: