自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(366)
  • 资源 (31)
  • 收藏
  • 关注

原创 c++多线程之async(),future

std::async()、std::future创建后台任务并返回值。希望线程返回一个结果。std::async()是个函数模板,用来启动一个异步任务,启动这个异步任务之后,它返回一个std::future对象,这个std::future包含线程入口函数返回的结果(线程返回的结果),我们可以调用future的成员函数get()来获取。int test(int x){ cout << "Child threadID:" << std::this_thread::get_id()

2021-06-13 23:50:51 13

原创 c++多线程之单例模式为什么懒汉式不安全,以及解决办法

下面先说说为什么它不安全:class JackTang{private: JackTang() { } //不能在析构函数中析构这个静态对象,这是一种错误的做法,虽然会调用,但是一个死递归,正确做法 //是创建一个嵌套析构类(下面的B)。 /*~JackTang() { if (pInstance) { cout << "hello "; delete pInstance;//递归调用 pInstance = NULL; cout

2021-06-13 15:37:35 8

原创 c++多线程之release

std::mutex m_utex1;int ncount = 0;void mythread1(){ for (int i = 0; i < 100;i++) { unique_lock<std::mutex> lc(m_utex1); cout << ncount << " "; }}void mythread2(){ for (int i = 0; i < 100; i++) { unique_lock&l.

2021-06-13 00:24:27 5

原创 c++11多线程之使用std::try_to_lock摸鱼

代码如下:结果:从结果看出,当拿不到锁的时候,没有在那里傻傻的等待,而是偷偷摸鱼了19次,这样计算机资源就被我们充分利用起来了。下面说说std::try_to_lock的作用:使用该关键字后,会尝试去锁定m_utex,但如果没有锁定成功,也会立即返回,并不会阻塞在那里。...

2021-06-11 16:41:23 8

原创 c++多线程之死锁

什么是死锁?死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。我们举个例子来描述,如果此时有一个线程A,按照先锁a,再锁b,而在此同时又有另外一个线程B,按照先锁b再锁a的顺序获得锁。如下图所示:就如图这种情况下,线程A在等待锁b,可是锁b被锁住了,所以此时不能往下进行,需要等待锁b释放,而线程B先是锁住了

2021-06-08 21:26:48 34

原创 c++11之多线程创建方式

函数无参使用一个无参函数创建线程,thread 的构造接受一个参数,即函数名。//编写一个函数作为线程的执行路径void myprint() { cout << "我的线程开始运行" << endl; cout << "我的线程开始运行" << endl; cout << "我的线程开始运行" << endl; cout << "我的线程开始运行" << endl; cout << "

2021-06-06 23:28:18 18

原创 c++多线程传参之意料之外的事

先看代码:class JackTang{public: int number; mutable int x{ 101 }; JackTang(int a) :number(a) { } JackTang(const JackTang &obj) { number = obj.number; ; } ~JackTang() { }};void test1(JackTang &obj){ obj.x = 1111;}void t

2021-06-05 19:12:26 25

原创 list的迭代器可改变真实元素

结果:

2021-06-05 10:55:33 19

原创 c++多线程之detach的坑

坑的来源就是,主线程退出了,子线程还没有结束。然后传递的参数要不失效,要不隐式转化失败等。class JackTang{public: int number; JackTang(int a) :number(a) { cout << "这是构造函数\n"; } JackTang(const JackTang &obj) { number = obj.number; cout << "这是Copy构造函数\n"; } ~JackTang(

2021-06-04 23:38:35 15 1

原创 c++基础之引用

1. 什么是引用  引用不是创建一个新的变量,而是给一个已经定义的变量重新起一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;例如:int main(){ int a = 10; int& b = a; //b就是a的引用 cout << "The address of a is " << &a << endl; cout &lt

2021-06-03 22:52:59 24 3

原创 c++11 线程休眠

std::this_thread::sleep_for(std::chrono::seconds(4)); //休眠4秒std::this_thread::sleep_for(std::chrono:: milliseconds (150)); //休眠150毫秒

2021-06-02 09:53:30 13 1

原创 c++多线程之为什么要使用条件变量

先看示例1:#include <iostream>#include <windows.h>#include <mutex>#include<deque>#include <thread>using namespace std;int nmax = 20;std::deque<int> m_que;std::mutex mymutex;//生产者void producterex(){ int i = 1

2021-05-30 23:54:13 212 7

原创 设计模式17-策略模式

模式定义策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。Context(环境角色):持有一个队Strategy的引用,最终客户端调用Strategy(抽象策略):定义了一个公共接口,让不同的算法以不同的方式来实现,通过这个接口,Context可以调用不同的算法。ConcreteStrategy(具体策略):实现Strategy定义的接口,提供具体的算法实现。示例源码:#include<iostream>#include &lt

2021-05-30 13:38:19 9

原创 c++并发编程05-什么是回调函数

不知你是不是也有这样的疑惑,我们为什么需要回调函数这个概念呢?直接调用函数不就可以了?回调函数到底有什么作用?程序员到底该如何理解回调函数?一切要从这样的需求说起假设你们公司要开发下一代国民App“明日油条”,一款主打解决国民早餐问题的App,为了加快开发进度,这款应用由A小组和B小组协同开发。其中有一个核心模块由A小组开发然后供B小组调用,这个核心模块被封装成了一个函数,这个函数就叫make_youtiao()。如果make_youtiao()这个函数执行的很快并可以立即返回,那么B小组的同学只需

2021-05-29 23:39:30 24

原创 去除数组中的最大值与最小值然后求解平均数

代码如下:结果:

2021-05-28 22:20:25 27

原创 c++并发编程04-同步与异步

假设现在老板分配给了你一个很紧急并且很重要的任务,让你下班前必须完成(万恶的资本主义)。为了督促进度,老板搬了个椅子坐在一边盯着你写代码。你心里肯定已经骂上了,“WTF,你有这么闲吗?盯着老子,你就不能去干点其他事情吗?”老板仿佛接收到了你的脑电波一样:“我就在这等着,你写完前我哪也不去,厕所也不去。”第二天,老板又交给了你一项任务。不过这次就没那么着急啦,这次老板轻描淡写,“小伙子可以啊,不错不错,你再努力干一年,明年我就财务自由了,今天的这个任务不着急,你写完告诉我一声就行”。这次老板没有盯

2021-05-24 23:51:40 314 5

原创 设计模式16-责任链模式

定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象链成一条链,并沿着这条链传递该请求/命令,直到有对象处理它为止类图代码示例class Handle_Car{public: virtual void makecar() = 0; void setNextHandle(Handle_Car *next) { nextHandel = next; }protected: Handle_Car *nextHandel;};class Han

2021-05-24 22:39:54 32

原创 c++并发编程03-I/O多路复用

什么是文件程序员使用I/O最终都逃不过文件这个概念。在Linux世界中文件是一个很简单的概念,作为程序员我们只需要将其理解为一个N byte的序列就可以了:b1, b2, b3, b4, … bN实际上所有的I/O设备都被抽象为了文件这个概念,一切皆文件,Everything is File,磁盘、网络数据、终端,甚至进程间通信工具管道pipe等都被当做文件对待。所有的I/O操作也都可以通过文件读写来实现,这一非常优雅的抽象可以让程序员使用一套接口就能对所有外设I/O操作。常用的I/O操作接口一

2021-05-23 16:50:01 17

原创 c++并发编程02-什么是I/O

相信对于程序员来说I/O操作是最为熟悉不过的了:当我们使用C语言中的printf、C++中的"<<",Python中的print,Java中的System.out.println等时,这是I/O;当我们使用各种语言读写文件时,这也是I/O;当我们通过TCP/IP进行网络通信时,这同样是I/O;当我们使用鼠标龙飞凤舞时,当我们扛起键盘在评论区里指点江山亦或是埋头苦干努力制造bug时、当我们能看到屏幕上的漂亮的图形界面时等等,这一切都是I/O。想一想,如果没有I/O计算机该是一种多么枯燥的设备,

2021-05-23 15:52:19 20

原创 设计模式15-模板模式

一、模板模式定义一个操作的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。实现方案:将算法/逻辑框架放在抽象基类中,并定义好实现接口,在子类中实现细节接口。二、模式结构角色AbstractClass(抽象类):定义或声明了一系列基本操作method,这些操作可以是具体也可以是抽象的,每一个操作都对应算法的一个步骤,在其派生类(子类)中可以重定义。抽象类中定义一个用于定义一个算法的流程框架的方法。ConcreteClass(派生类):抽象类的子

2021-05-22 18:37:02 9

原创 设计模式0-分类

2021-05-22 17:24:24 10

原创 设计模式14-享元模式

一、共享模式介绍在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价-主要指内存需求方面的代价。享元模式尝试重用现有的同类对象,用唯一标识码(比如说id、hash等)判断,如果在内存中有,则返回这个唯一标识码所标识的对象,如果未找到匹配的对象,则创建新对象。下面是UML类图二、代码实现#include<iostream>#include<string>#include <map>using namespace

2021-05-22 17:14:40 43

原创 设计模式13-外观模式

一、什么是外观模式为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一个系统更加容易使用。说白了,其实就是对一系列接口的封装。二、Facade模式的构成: 外观角色(Facade):是模式的核心,他被客户client角色调用,知道各个子系统的功能。同时根据客户角色已有的需求预订了几种功能组合。子系统角色(Subsystemclasses):实现子系统的功能,并处理由Facade对象指派的任务。对子系统而言,facade和client角色是未知的,没有Fa

2021-05-22 11:40:58 24

原创 设计模式12-组合模式

一、什么是组合模式组合多个对象形成树形结构以表示“部分-整体”的结构层次。组合模式对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性。可以简单理解为一组对象集合。其应用场景的特殊性,数据必须能表示成树形结构树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等,这样的组织形式的特点在于:叶子节点不再包含成员对象,而容器节点可以包含成员对象,这些对象可以是叶子节点,也可以是容器节点。下面是UML类图二、模式结构Component(抽象构件):

2021-05-22 00:11:27 55

原创 设计模式11-装饰者模式

装饰者模式主要实现的功能是动态的给某一个类添加一些额外的功能,它是一个锦上添花者。想要扩展功能,装饰者提供了有别于继承的另外一种选择。设计模式的原则是多用组合少用继承。下面是一个关于扩展汽车的例子结果:...

2021-05-20 18:08:40 14

原创 程序如何兼Linux和Windows系统

如果我们有一个可以能够解析 PE 格式的装载器,我们就有可能在 Linux 下运行 Windows 程序了。这样的程序真的存在吗?没错,Linux 下著名的开源项目 Wine,就是通过兼容 PE 格式的装载器,使得我们能直接在 Linux 下运行 Windows 程序的。而现在微软的 Windows 里面也提供了 WSL,也就是 Windows Subsystem for Linux,可以解析和加载 ELF 格式的文件。...

2021-05-16 00:05:54 26

原创 设计模式之UML类图

虚线箭头指向依赖;实线箭头指向关联;虚线三角指向接口;实线三角指向父类;空心菱形能分离而独立存在,是聚合;实心菱形精密关联不可分,是组合;看https://www.cnblogs.com/pangjianxin/p/7877868.html...

2021-05-12 23:11:26 13

转载 设计模式之UML用例图

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。用例图所包含的元素如下:  1. 参与者(Actor)表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。2. 用例(Use Case)用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。3. 子系统(Subsystem)用来展示系统的一部分功能,这部分功能联系紧密。  4. 关系用例

2021-05-11 13:24:15 23

转载 c++读写串口

本文来自:https://wangbaiyuan.cn/c-serial-communication-write-reading.html    在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令

2021-05-11 11:06:25 65

原创 C++正则表达式的简单使用案例

结果:

2021-04-29 16:16:39 8

原创 操作系统-16-进程退出后占用的内存去哪了?

进程退出后占用的内存去哪了?作为程序员我们需要执行,当进程结束后,进程占用的所有的内存空间将被操作系统回收,包括函数调用使用的栈、动态内存分配使用的堆、代码段中的机器指令、数据段中的全局变量等。所谓回收,就是将进程所占用的内存空间标记为可用,可以用于其它用途了。而当进程运行时这些所占用的内存是不可以用作其它用途的。因此,我们不用担心堆区上动态分配的内存在程序结束前没有释放,这是不会造成内存泄漏的,因为进程退出后包括堆区在内所有占用的内存都会被操作系统回收,如图所示:因此如果程序存在内存泄漏但是又一时找

2021-04-23 23:04:49 82

转载 拷贝构造函数详解

https://www.cnblogs.com/alantu2018/p/8459250.html

2021-04-21 23:26:51 10

原创 操作系统-15-进程的创建

从这一节起,我们将详细讲解进程的一生。进程如人生,进程的一生同样包含三个阶段,创建,运行和终结,本节是进程三部曲的开篇:进程创建。接下来,我们讲解关于进程创建的诸多问题。进程是由谁创建的?在什么情况下创建的?幸好这个问题不像鸡生蛋蛋生鸡那样,这个问题的答案相对简单,进程的创建者有两种:1.操作系统可以创建新的进程2.进程也可以创建新的进程其中,进程的创建者被称为父进程,创建出的进程被称为子进程。1,操作系统创建进程:初始化作为计算机的Boss,最初的进程是由操作系统创建的,操作系统在初始化的

2021-04-14 12:12:21 122 2

原创 操作系统-14-操作系统是如何运行的

操作系统是如何启动的我们已经知道了,操作系统其实就是一个大的C程序,本质上和我们自己写的C程序没什么区别,用户程序要想运行起来需要被操作系统从磁盘加载到内存中,那么操作系统是如何运行起来的呢?我们可以自己想一下这个问题,计算机在关机状态下也就是不通电的状态下内存是不能保存内容的,因此一般情况下操作系统和我们的程序一样都是保存在磁盘当中(没有磁盘的计算设备,例如嵌入式设备,会保存在ROM中,稍后会有解释),那么操作系统要想运行起来必然需要被什么东西加载到内存当中。当我们按下计算机的开机按键后,这时的计算

2021-04-11 22:25:52 83 2

原创 链接器的理解-05-重定位

我们继续来讲解链接器的重定位。程序的运行过程就是CPU不断的从内存中取出指令然后执行执行的过程,对于函数调用来说比如我们在C/C++语言中调用简单的加法函数add,其对应的汇编指令可能是这样的:call 0x4004fd其中0x4004fd即为函数add在内存中的地址,当CPU执行这条语句的时候就会跳转到0x4004fd这个位置开始执行函数add对应的机器指令。再比如我们在C语言中对一个全局变量g_num不断加一来进行计数,其对应的汇编指令可能是这样的:mov 0x400fda %eaxadd

2021-04-11 16:24:56 42 1

原创 链接器的理解-04-库与可执行文件的生成<下>

我们继续来看动态链接。我们知道静态库在编译链接期间就被打包copy到了可执行文件,也就是说静态库其实是在编译期间(Compile time)链接使用的,那么动态库又是在什么时候才链接使用的呢,动态链接可以在两种情况下被链接使用,分别是load-time dynamic linking(加载时动态链接) 以及 run-time dynamic linking(运行时动态链接),接下来我们分别讲解一下。load-time dynamic linking(加载时动态链接)首先可能有的同学会问,什么是load

2021-04-11 12:59:44 38

原创 链接器的理解-03-库与可执行文件的生成<上>

在链接器可操作的元素这一节中我们提到,链接器可以操作的最小单元为目标文件,也就是说我们见到的无论是静态库、动态库、可执行文件,都是基于目标文件构建出来的。目标文件就好比乐高积木中最小的零部件。给定目标文件以及链接选项,链接器可以生成两种库,分别是静态库以及动态库,如图所示,给定同样的目标文件,链接器可以生成两种不同类型的库,接下来我们分别介绍。静态库假设这样一个应用场景,基础设计团队设计了好多实用并且功能强大的工具函数,业务团队需要用到里面的各种函数。每次新添加其中一个函数,业务团队都要去找相应的实

2021-04-10 16:31:09 25

原创 操作系统-13-程序员应如何理解中断

在这一节中我们聊一聊,操作系统管理外设的中断机制。为什么要在这一节聊一聊操作系统如何管理外设呢,外设管理是操作系统的核心任务之一,理解操作系统的外设管理机制对于我们理解操作系统工作原理至关重要。通过第二章的讲解,我们已经知道了,利用系统调用这种机制,我们可以向操作系统发起请求来创建进程、读写文件等等,虽然我们还没有讲解操作系统如何进行进程管理文件管理等,至少操作系统的这一部分工作机制,也就是系统调用,对于我们来说已经不再神秘了,但是我们依然不清楚操作系统是如何管理外部设备(鼠标、键盘、USB设备、打印机、

2021-04-09 00:04:46 94 5

原创 链接器的理解-02-符号决议

所有的应用程序都是链接器将所需要的一个个简单的目标文件汇集起来形成的。你可以将这个过程想象成拼图游戏,每个拼块就是一个简单的目标文件:1,拼图游戏当中的每个拼块都依赖于其它拼块提供的拼接口,这就好比我们写的程序模块依赖于其它模块提供的编程接口,比如我们在list.c中实现了一种特定的链表数据结构,其它模块需要使用这种链表,这就是模块间的依赖。而链接器其中一项任务就是要确保提供给链接器进行链接的目标文件集合之间依赖是成立的(也就是说,不会出现在被依赖的模块中链接器找不到需要的接口),这就是后面我们要讲到的符

2021-04-08 21:23:51 29

原创 链接器的理解-01-前言

对于C++源文件,从文本到可执行文件一般需要四个过程:预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件链接阶段:将多个目标文件及所需要的库连接成最终的可执行目标文件在介绍本章的主题之前,我们先来看几个问题:问题一写C/C++的同学应该经常遇到这样的一个Error:“undefined reference

2021-04-08 09:50:49 57 3

NTP校时(同步局域网内所有设备的时间)(Windows 如何安装NTP服务器)

好多设备指定一个需要同步时间的设备,使其所有设备时间都一样

2019-01-16

AccessPort111.zip

这是一个串口工具,非常好用

2021-05-26

glog编译好的库(dll,lib,h)

glog编译好的.lib、.dll、 .h文件

2020-12-22

很好用的像素尺子

这是一个可以在Windows下运行的像素尺,方便开发人员进行像素宽度的测量

2019-03-09

C++皮肤库,skin

很漂亮的界面,想做界面的同学可以试着学学,用法很简单,里面有具体的使用方法。

2018-04-20

C#对FreeImage的使用

支持GPG,jp2,bmp等二十多种图片的转换,很是方便,啦啦啦啦啦啦啦啦啦啦啦啦啦啦;;;;;啦啦啦啦啦

2020-04-11

pdf转word工具

里面是一个安装包,安装之后可以用,自己用过几次,觉得还不错,大家可以试一试,最近下载东西比较多,比较费积分,故赚点积分,望理解。

2020-07-07

Ini配置文件读写.zip

配置文件源码

2021-04-06

CTestPro.zip

CPtrList使用方法,是VS2015写的

2021-03-24

共享内存实现,MFC,C++,VS2015

里面有两个程序,启动之后都可以接收发送消息,但是需要先启动带创建共享内存提示的那个。

2021-03-19

谷歌日志库glog,编译通过

谷歌日志库glog,编译通过

2020-12-23

Project3内存检测.rar

仅仅一个例子,里面有使用的方法,编译环境是VS2013,测试通过,可以定位。最近下载东西比较多,赚点积分,设置了2分,不过分吧。

2020-07-25

vc++ MFC 将list控件导入excel

vc++ MFC 将list控件导入excel,已经封装好了,直接可以用,

2019-03-09

Combobox的智能提示

根据在combobox中输入的内容,和已经加载的内容进行模糊匹配。

2018-04-20

局域网扫描工具.zip

搜索整个局域网中所有在线的IP,在工作中经常使用,所以推介一下,希望对给位同学有所帮助。真的挺好用的。

2020-07-07

stl泛型编程--视频教程,讲的比较细

stl 泛型编程课程,值得学习,是百度网盘方式获取,,

2019-10-31

FreeImage库,C++,C#测试通过

支持c++,C#,这两个已经经过测试, 库很小就5M,在格式转换非常方便,推介使用。

2020-04-11

C++MD5加密的使用

是一个做好的Demon,里面介绍了加密算法的基本使用,可为初学者提供一些帮助

2019-01-16

套接字编程之聊天小工具

套接字编程,开发了一个小demo,里面有源码,然后有release版本与debug版本,都可以直接使用,希望对初学者有用。

2020-07-11

msxml安装包

开发当中经常提示少一些库,查了很多资料找到终于知道是什么原因,是msxml没有装,本人使用的是vs2013.

2020-07-07

opencv3.0适合VS2013,VS2012

opencv官网下载比较慢,在这里下载会快些,适合vs2013,vs2012的同学使用

2018-12-04

图片处理工具(各种大小)

不管你是开发或者其他人员,其实这款工具真的特别好用,界面酷炫,功能强悍,可以说是一个小“ps”也不为过。生活中的证件照尺寸等也都有。

2020-04-19

TyUSBCamera.zip

使用openCV 实现打开本地摄像头,和usb 摄像头,开发环境是visual studio ,

2019-08-13

C++面向对象高级开发:

C++面向对象高级开发,适合进阶。提升,候老师所讲嘿嘿

2019-10-31

图的遍历

包含图的存储、深度优先遍历、广度优先遍历、只需把文件加载到工程文件,编译即可运行,代码值得思考

2020-02-27

手动构造一个哈希表

哈希表的实现,里面包含二叉排序树,及其自己实现的哈希结构,纯代码,代码结构的排布值得思考。

2020-02-27

bmp转为jpg的代码处理

实现将bmp图片转化为jpg图片,只需提供原图片路径和目标路径即可,

2018-04-20

mysql+connetcot.txt

包含数据库和连接串,对于操作数据库及其连接,亲自测试没有任何问题,版本是5.7.17.msi,其中连接器有32位和64位两个版本,自己根据需要安装

2019-12-29

c++ 内存管理

c++ 内存管理,候老师讲的,很棒的资源,适合提高进阶

2019-10-31

MySkinTy.zip

有三种皮肤,个人觉得像office2007的风格,挺好看的,里面带有使用说明,使用非常简单,亲测是vs2013,vc6,

2019-09-03

执行数据库脚本工具

通过ADO连接方式,能够执行数据库的脚本,比如创建数据库,或者表,方式是通过读取.sql本地文件。

2019-04-29

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除