利用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);
 
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章