Visual Studio 2010生成dll并使用

新建Win32控制台应用程序,选择下一步,选择dll那个如果可能的话尽量选择空项目
如果没有语法错误,直接生成就会有dll文件构建成功

本例为作者仿照java中StringTokenizer做的Sample,cpp文件一并附上

StringTokenizer.h

#pragma once
#ifdef EXPORTS
#define EXPORTS __declspec(dllexport) 
#else
#define EXPORTS __declspec(dllimport) 
#endif
#include <string>

using namespace std;

class StringTokenizer
{
public:
	EXPORTS StringTokenizer(string, string, int cur=0);
	~StringTokenizer(void);
	EXPORTS string next();
	EXPORTS bool hasNext();
private:
	string m_str;
	string m_divider;
	int m_cur;
};
在需要暴露的接口前使用已经定义了的EXPORTS宏,宏名无所谓,主要是后边的
__declspec(dllimport)

静态连接库的生成和使用太简单了,这里不讨论了。

StringTokenizer.cpp

#include "StringTokenizer.h"


StringTokenizer::StringTokenizer(string str, string divider, int cur):m_str(str), m_divider(divider), m_cur(cur)
{
}


StringTokenizer::~StringTokenizer(void)
{
}

string StringTokenizer::next(){
	if(m_divider.length() >= 1){
		m_str=m_str.substr(m_cur, m_str.length());
		int cur=m_str.find(m_divider);
		if(cur!=-1){
			m_cur=cur+m_divider.length();
			return m_str.substr(0, cur);
		}else if(m_str.length()!=0){
			m_cur=cur;
			return m_str;
		}
	}else{
		m_cur=-1;
		m_str="";
	}
	return "";
}

bool StringTokenizer::hasNext(){
	return m_cur!=-1&&(m_str.length()!=0);
}
对于这个类有什么bug可以评论告知我,谢谢了






转载于:https://my.oschina.net/lisanhu2015/blog/93366

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值