C++封装dll并用C#调用(范例),解决C#调用C++的dll找不到入口点异常

实现以下功能:C++读写剪切板,封装为dll,并用C#调用,实现读写剪切板。


第一部分,C++代码:

#include<stdio.h>
#include<windows.h>  
#include<string.h>

extern "C"  __declspec(dllexport) void SetString(char * text, int size)
{
	OpenClipboard(NULL);//打开剪切板  
	EmptyClipboard();//清空剪切板  
	HANDLE handle = GlobalAlloc(GMEM_FIXED, size);//分配内存  
	char* clip = (char*)GlobalLock(handle);//锁定内存,返回申请内存的首地址  
	strcpy_s(clip, size, text);//复制文本到内存地址
	SetClipboardData(CF_TEXT, handle);//设置剪切板数据  
	GlobalUnlock(handle);//解除锁定  
	CloseClipboard();//关闭剪切板
}

extern "C" __declspec(dllexport) char* GetString()
{
	char * text = NULL;
	OpenClipboard(NULL);//打开剪切板  
	if (IsClipboardFormatAvailable(CF_TEXT))
	{
		HANDLE handle = GetClipboardData(CF_TEXT);//获取剪切板数据  
		text = (char*)GlobalLock(handle);//锁定内存,返回申请内存的首地址  
		GlobalUnlock(handle);//解除锁定  
	}
	CloseClipboard();//关闭剪切板  
	return text;
}

void main(){
	char * text = "中国制造,惠及全球";
	SetString(text, 100);
	printf(GetString());
	getchar();
}

第二部分,C++编译为dll:


第三部分,C#调用:

        [DllImport("Clipboard.dll")]
        public static extern void SetString(string text, int size);

        [DllImport("Clipboard.dll")]
        public static extern string GetString();


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上海好程序员

给上海好程序员加个鸡腿!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值