博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual Studio 2010生成dll并使用
阅读量:6585 次
发布时间:2019-06-24

本文共 1244 字,大约阅读时间需要 4 分钟。

hot3.png

新建Win32控制台应用程序,选择下一步,选择dll那个如果可能的话尽量选择空项目

如果没有语法错误,直接生成就会有dll文件构建成功

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

StringTokenizer.h

#pragma once#ifdef EXPORTS#define EXPORTS __declspec(dllexport) #else#define EXPORTS __declspec(dllimport) #endif#include 
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

你可能感兴趣的文章
Java基础——代码块
查看>>
mybatis缓存的装饰器模式
查看>>
PDF文件如何转成markdown格式
查看>>
数据库原理
查看>>
区块链100讲:从村里的账本来看什么是区块链
查看>>
Java String indexOf()方法和java.lang.StringBuilder.setLength()方法实例
查看>>
第五次课
查看>>
SpringCloud 微服务 (八) 统一配置中心 Config Server&Client
查看>>
基于Redis实现分布式锁
查看>>
Python那么火,到底能用来做什么?我们来说说Python3的主要应用
查看>>
SpringBoot-JPA的delete操作
查看>>
特殊权限set_uid、set__gid、stick_bit
查看>>
Qt之QPainter:提高绘制效率的方法
查看>>
Javascript之高级数组API的使用实例
查看>>
Kafka消息投递语义-消息不丢失,不重复,不丢不重
查看>>
在Spring boot中自定义starter
查看>>
图形化理解JavaWeb工作原理:
查看>>
Hadoop 实现定制的Writable类型(附部分源码)
查看>>
OSChina 周五乱弹 —— 谁来调调加班这个Bug
查看>>
OSChina 周四乱弹 —— 紧箍咒的工作原理
查看>>