C/C++编写dll动态链接库使用操作与非基本类型参数声明错误(2)
传递vector<string>类型参数~
【dll 文件】
#include <iostream>
#include <vector>
#include <string>
using namespace std;
extern "C" __declspec(dllexport)int show_vector(vector<string> aaa);
int show_vector(vector<string> aaa) // 传过来的aaa最好 不要修改、增加、删除里的值
{
vector<string>::iterator bb;
vector<string> ccc;
ccc = aaa; // 偶然发现,可以这样赋值
ccc.push_back("sdgwrgwegwwgwerghg");
ccc.push_back("dgwegwbhwwhbergerh");
ccc.push_back("her");
ccc.push_back("wgwegwrgerhrjn");
ccc.push_back("jrtjrjnrjhn");
ccc.push_back("tjh54ye54y5yr5y2");
bb = ccc.begin();
while(bb != ccc.end())
{
cout<< bb->c_str() <<endl;
bb++;
}
return 0;
}
【exe 文件】..拷贝文件 XXX.dll and XXX.lib 分别于 debug and 主文件目录下
#include <iostream>
#include <vector>
#include <string>
using namespace std;
#pragma comment(lib,"dll_stl_vector.lib")
extern "C" __declspec(dllimport) int show_vector(vector<string>);
void main(void)
{
vector<string> aaa;
aaa.push_back("gsdhfsdlfj");
aaa.push_back("klshgohowhe");
aaa.push_back("slwohei");
show_vector(aaa);
aaa.clear();
getchar();
}
【执行结果】