利用C++调用C#生成的类库

上一篇文章是写了利用C#成功实现Pdf转换成图片,这次就主要讨论怎样利用VC++ 2008来调用。

下面有一些参考网站:

http://blog.csdn.net/suoxd123/archive/2010/01/08/5157668.aspx

http://www.vckbase.com/document/viewdoc/?id=1852

因为我是用VS2008编译并调用,因此实现起来并不是很麻烦。

 

第一步:

 1、在建立的项目文件中,打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。
 2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。

第二步:可以建立一个edit显示打开文件名,在用一个按钮操作转换。在.cpp文件中加入:


函数中添加:
cpp文件头中:

#include <stdlib.h>
#include <vcclr.h>

using System::String;
using System::IntPtr;
using namespace System::Runtime::InteropServices;

 

#using "..//Debug//PDFLibSharp.dll"
#import "..//Debug//PDFLibSharp.tlb"
using namespace PDFLibSharp;

 


然后是函数:

void CUseDllDlg::OnBnClickedConvert()
{
 // TODO: 在此添加控件通知处理程序代码 
 PdfToJpg ^pTOj = gcnew PdfToJpg(); //建立类
 
 String ^str1 = Marshal::PtrToStringAuto(static_cast <IntPtr>(filename.GetBuffer(0)));  //类型转换
 UpdateData(true);  //读取第几页m_num
 int num;
 int width = 900; //宽度 
 int height = 1300; //高度
// num = pTOj->ConvertPdftoJpg(str1,m_num); //默认宽度和高度

 num = pTOj->ConvertPdftoJpg(str1,m_num, width, height); //自己设宽度和高的
 
 CString str2;   //各种错误
 if (num == 0)
 {
  str2 = "no file";
 }

 if (num == 1)
 {
  str2 = "can not open";
 }
 if (num == 2)
 {
  str2 = "page big";
 }
 if (num == 10)
 {
  str2 = "convert error";
 } 
 MessageBox((LPCTSTR)str2);
 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值