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();
}

 

【执行结果】

C/C++编写dll动态链接库使用操作与非基本类型参数声明错误(2)

你可能感兴趣的:(c/c++)