C++类的导入导出

一、在待导出工程中:

1.对导入导出进行宏定义,编写条件编译指令,一般都是单独写在一个.h文件中,格式如下:

#ifndef XX_DEFINE_H
#define XX_DEFINE_H
#ifdef XX_DLL
#define XXAPI __declspec(dllexport)
#else
#define XXAPI __declspec(dllimport)
#endif
#endif
其中:

#ifdef XX_DLL  //如果有宏定义XX_DLL

#define XXAPI __declspec(dllexport)       //定义XXAPI为导出

#else         //否则

#define XXAPI __declspec(dllimport)       //定义XXAPI为导入


2.给待导出工程添加宏定义XX_DLL:

工程->属性->配置属性->C/C++->预处理器->预处理器定义:添加XX_DLL。

 

3.编译待导出工程。

 

二、在待导入工程中:

1.将待导出工程生成的.dll拖拽到待导入工程的生成目录下(即待导入工程的.exe所在文件夹),或者直接将两者的生成目录设置成同一目录。

2.修改待导入工程的属性:

工程->属性->配置属性->C/C++->常规->附加包含目录:添加.h所在文件夹

工程->属性->配置属性->C/C++->预处理器->预处理器定义:添加宏定义

工程->属性->配置属性->链接器->常规->附加库目录:添加.lib所在文件夹

工程->属性->配置属性->链接器->输入->附加依赖项:向lib库中添加附加库目录中引入的xxxx.lib

 

注意:

1.通过导入导出的方式无需添加现有项。

2.如果是Qt Application,当从外部添加现有项到工程时,Generated Files->Debug下的*.moc文件的默认编译器会变成C/C++编译器,应该改为自定义生成工具,同时修改其命令行、说明、输出和附加依赖项。

3.在待导入工程中使用时,直接声明导出的类即可,注意命名空间。



要在C++中实现Excel的导入导出,可以使用Microsoft Office COM组件。以下是一个简单的示例代码: 1. 导入数据 ``` #include <iostream> #include <Windows.h> #include <comutil.h> #include <comdef.h> #include <atlbase.h> #include <atlcom.h> #include <atlctl.h> #include <atlstr.h> void ImportExcelData() { CoInitialize(NULL); // 创建Excel应用程序对象 _ApplicationPtr pExcelApp; HRESULT hr = pExcelApp.CreateInstance(__uuidof(Application)); if (FAILED(hr)) { std::cout << "Failed to create Excel application instance." << std::endl; return; } // 打开Excel文件 _WorkbookPtr pWorkbook = pExcelApp->Workbooks->Open(L"test.xlsx"); // 选择工作表 _WorksheetPtr pWorksheet = pWorkbook->Worksheets->Item[1]; // 获取单元格数据 _bstr_t bstrCellValue = pWorksheet->Cells->Item[1][1]->Value; std::cout << "Cell value: " << (LPCTSTR)bstrCellValue << std::endl; // 关闭Excel文件 pWorkbook->Close(); // 退出Excel应用程序 pExcelApp->Quit(); CoUninitialize(); } ``` 2. 导出数据 ``` void ExportExcelData() { CoInitialize(NULL); // 创建Excel应用程序对象 _ApplicationPtr pExcelApp; HRESULT hr = pExcelApp.CreateInstance(__uuidof(Application)); if (FAILED(hr)) { std::cout << "Failed to create Excel application instance." << std::endl; return; } // 添加新工作簿 _WorkbookPtr pWorkbook = pExcelApp->Workbooks->Add(); // 选择工作表 _WorksheetPtr pWorksheet = pWorkbook->Worksheets->Item[1]; // 写入数据 pWorksheet->Cells->Item[1][1]->Value = _bstr_t(L"Hello"); pWorksheet->Cells->Item[1][2]->Value = _bstr_t(L"World"); // 保存Excel文件 pWorkbook->SaveAs(L"output.xlsx"); // 关闭Excel文件 pWorkbook->Close(); // 退出Excel应用程序 pExcelApp->Quit(); CoUninitialize(); } ``` 需要注意的是,要在项目中添加对Microsoft Office COM组件的引用,并且在使用COM组件之前需要调用`CoInitialize`函数进行初始化,在使用完之后需要调用`CoUninitialize`函数进行清理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值