VC6.0如何创建一个基本的Win32 DLL工程

VC6.0中,创建、调用 dll 参考链接: 如何使用VC6.0创建DLL 用VC6.0创建和调用win32 dll 1.使用 VC6.0 生成 DLL 新建项目 “Win32 Dynamic-Link Library”,输入项目名称,确定后选择 “A simple DLL project” 点击“完成”。   以下为cpp文件自动生成的代码: #include "stdafx.h" BOOL APIENT... 阅读详情

第一步: 使用VC6.0工程向导 Win32 Dynamic-Link Library

创建Win32s1工程,并在向导第一步选择 An empty DLL project

第二步: 在FileView中分别创建 dll1.h和dll1.cpp

①、在dll1.h中定义

#ifndef _DLL_BASICUI_H_

#define _DLL_BASICUI_H_   //告诉编译器只编译该文件一次

 

#if defined DLL_EXPORT

#define SBUI_API __declspec(dllexport)

#else

#define SBUI_API __declspec(dllimport)

#endif

 

/*

C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

*/

 

 

/*
如果编译器看到 __cplusplus 标识,则 extern "C" 参与编译, 反之不编译
这样的预处理命令对调试程序、平台移植非常有用
如果 extern "C" 被编译{...}中间的语句执行C语法规则

另外, __cplusplus 是C++编译器的保留宏定义,也就是说C++编译器认为这个
宏已经定义了

*/
#ifdef __cplusplus   

// only need to export C interface if used by C++ source code
extern "C" {
#endif

//……

//这里是导出函数的声明部分

#undef  SBUI_API
#ifdef __cplusplus
}
#endif

 

#endif

 

②、在dll1.cpp文件中

#define  DLL_EXPORT

#include <windows.h>

#include "dll1.h"

 

第三步: 添加功能函数

首先,在头文件中声明导出函数

SBUI_API BOOL  SBUI_DoGetPathName(HWND   hwndParent, //主窗口句柄

                                           LPTSTR pPathName,  //全路径名

                                           short  nFLAG,              //路径标志 1打开;,2保存

                                           short  nFileType);  //文件类型 1配置文件,2位图文件

其次,在.cpp文件中实现函数

BOOL  SBUI_DoGetPathName(HWND   hwndParent,

                                           LPTSTR pPathName, 

                                           short  nFLAG,             

                                           short  nFileType) 

{

//……

}

备注: 长此以来我就是按照这个格式,创建自己的Win32 DLL工程,不知道正确不正确,我已经用了一段时间了,呵呵!~

vc6.0操作sqlite3数据库 所有用到的工具打包下载,除vc6.0,点击下载第一步:准备工具:1、vc6.0,度娘知道下载地址 2、sqlite3,下载地址:http://www.sqlite.org/download.html 本人使用的版本是3.8.9 sqlite-amalgamation-3080900.zip sqlite-dll-win32-x86-3080900.zip sqlite-shell-win3 阅读详情

相关推荐

vc中dll导出导入简单教程

dll和lib的区别未完待续如何导出dll查阅msdn官方文档发现,导出dll有三种方式,一种是使用.def文件导出,另一种是在代码中使用宏__declspec(dllexport)导出,最后一种是配置vc工程的属性,使用LINK 命令中的 /EXPORT 规范一,使用.def文件导出模块定义 (.def) 文件是包含一个或多个描述 DLL 各种特性的 Module 语句的文本文件。.def 文件必

xiaowu0124的专栏 2296

(筆記) 如何使用Visual C++ 6.0開發Win32 DLL? (C/C++) (VC++)

Abstract本文討論使用Visual Studio 6.0的Visaul C++開發Win32 DLL。 Introduction使用環境:Visual Studio 6.0, Visual C++ 6.0 為什麼要使用1998年的Visual C++ 6.0呢?因為很多MFC coder還是使用Visual C++ 6.0,很多企業也還是用Visual C++ 6.0繼續維護以前的程式,儘管...

weixin_34413103的博客 276

vc++6.0创建窗口代码(win32 application)

vc++6.0创建窗口代码(win32 application) 新手请下

Visual C++ 6.0 开发win32 窗口程序 -- 学习(1)

由于要开发MapGIS程序,版本67对应的SDK通常用VC6.0来开发,因此索性重新学习一下VC6.0开发C++程序,MFC什么的都挺老的了,但还真没学过,也可以试一下。 首先就是先安装VC6.0 在WINDOWS 7下有一点兼容性问题,优快云博客有很多解决方案,搜索一下即可解决。编译是没啥问题的。 其次就是学习windows api 的helloworld程序了! 找的教材是《VC++面向对象与可视化程序设计》第二版和第四版,黄维通编著。这是一本经典的老教材,估计很多院校学生都学过。

zjjsd195的专栏 2677

Win32 Dll工程创建与调用示例

Dll 动态链接库的创建与调用教程示例 让更多的DLL动态链接库初学者有个初步的形象认识,加快学习的进度

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1681

为VB6创建纯资源DLL(图片教程)

虽然vb可以把资源存在*.RES的资源文件里,一起编译成exe。但如果要换肤、多语言支持,显然DLL更方便 如何把图片、图标、自定义资源存放在DLL里面?下面我Step by Step教大家。 VB只能创建Activex DLL,所以用VC++创建纯正的DLL,这样的DLL无需注册(基于COM的才要注册)。下面以VC++ 6.0为例(VC++ 2005也差不多)。 1.打开VC++ 6.0,

zhongyhc的专栏 4781

DeepSeek 在 PostgreSQL 中,执行 `DELETE` 操作后,数据占用的空间并不会立即释放给操作系统

操作后,数据占用的空间并不会立即释放给操作系统。这是 PostgreSQL 的 MVCC(多版本并发控制)机制决定的——删除的数据只是被标记为“死元组”,物理空间仍然被表占用。这是最彻底的释放方式,会将表重写为一个没有空洞的新文件,将空间返回给操作系统。如果你的表非常大(如几百GB),或者这是生产环境的核心表,建议优先考虑。你可以告诉我你的表大概多大、是否能接受锁表,我可以给你更精确的建议。要真正释放空间,需要根据你的实际需求,从以下三种方案中选择一种。如果你既想彻底释放空间,又无法接受锁表,

m0_37843156的博客 404

教程:VB6写的32位dll插件升级支持64位Inventor

        64位现在比较流行了,所以有很多朋友想把过去用VB6写的Inventor dll插件(32位)做个升级,以便支持64位Inventor。有两种方法可以实现这个目标。一种是把dll插件修改成exe插件,第二种方法是把VB6插件转变成VB.NET插件。Brian的博客对这两种方法有非常详细地介绍。    以下转载至:http://modthemachine.typepad.co

CAD定制乐园 7000

CTF实战:Wireshark数据包分析从入门到精通(附经典题型解析)

本文详细介绍了Wireshark在CTF比赛中的数据包分析技巧,从基础抓包到高级协议解析,涵盖HTTP流量分析、USB键盘数据还原等实战案例。通过经典题型解析,帮助读者掌握精准过滤、文件提取等核心技能,提升CTF竞赛中的网络流量分析能力。

pz890123的博客 587

MATLAB并行开不了的解决办法

在服务器上新安装了MATLAB 2013b,在开并行计算的时候出现了下列问题 经过在网上搜多这个问题,我感觉这个问题应该是安装的时候的验证问题或者激活不成功之类的。注意其中有一句validate the profile ‘local’ in the Cluster Profile Manager.在matlab官网上找到了设置Cluster Manager的教程,如下 parallel>

sinat_36713319的博客 5987

Win32 dll 的简单创建与使用

文章利用vc++6.0简单的创建了dll工程,并生成dll文件。同时,在win32 控制台程序中进行了应用。

A_cainiao_A 1725

PDN设计

作者:AirCity 2020.2.6 Aircity007@sina.com 本文所有权归作者Aircity所有 PDN设计的目的是降低电源纹波水平,减小电压跌落。我们通常要求LDO的文波水平是30mV,DCDC是50mV,超过这个就需要PDN设计。 PDN设计的方法是用不同的容值,合适的总电容量,降低电源平面与地平面之间的交流阻抗,确定容值总量和电容大小的过程,就是PDN设计过程。 为什么需...

AirCity123的博客 4147

VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序)

VC6.0(VC++6.0)使用教程(使用VC6.0编写C语言程序) Visual C++ 6.0简称VC或者VC6.0,是微软1998年推出的一款C/C++ IDE,界面友好,调试功能强大。VC6.0是一款革命性的产品,非常经典,至今仍然有很多企业和个人在使用,很多高校也将VC6.0作为C语言的教学基础,作为上机实验的工具。本教程中的代码,也都是在VC6.0下运行通过。 VC6.0 确实有点老了,如果不是学校要求或者项目需要,建议使用 Visual Studio 代替,这里之所以讲解 VC6.0,是为了照

ccc369639963的博客 3万+

BERTopic安装指南:hdbscan依赖问题全解析(附解决方案)

本文详细解析了安装BERTopic时常见的hdbscan依赖报错问题,深入剖析了C++编译环境缺失、Python版本兼容性以及包管理渠道混用三大核心原因。针对Windows、macOS和Linux不同系统,提供了创建虚拟环境、使用conda安装预编译包、安装C++编译工具等具体解决方案,帮助用户顺利安装BERTopic并开始文本主题建模实践。

weixin_29061041的博客 214

QEMU理解与分析系列(11):QEMU内存机制

在物理机上,CPU 对于内存的访问在保护模式下通过分段分页的形式实现。在该模式下,CPU 访问时使用的是虚拟地址,通过 MMU 映射到物理地址,将虚拟地址转换为物理地址才能访问实际的物理内存。同样的,虚拟机模拟的物理机同样需要有上述的机制,也需要有从虚拟地址到物理地址的转换。这里需要注意,模拟的物理机的物理地址本质上是 qemu 的虚拟地址。

swh547的博客 49

【转】用VC6.0创建和调用win32 dll

一、生成DLL 1、用VC建立一个Win32DLL工程--DllTest,选上“导出符号”; 2、在DllTest.cpp中编写导出函数Fun(),这个函数是别的程序要调用的函数: 1: #include "DllTest.h" 2: int fun(int i) 3: { 4: return i*i; 5: } 3、在DllTest.h中声明导出

cometdlut的专栏 941

西门子PLC编程之⑦编程开始之点位配置及注释

紧接上篇,点位梳理后,进入PLC编程。1、新建工程,配置系统模块2、配置I点并做中文符合,直接上中文,smart支持中文点位编程,用起来很方便。3、配置Q点并做中文符合5、配置AIW模拟量输入点,配置AQW模拟量输出点并做中文符合6、配置手动启动辅助触点,并做中文符合7、 配置自动启动辅助触点,并做中文符合8、 配置传感器浮点型数据变量点位,并做中文符合9、配置系统运行参数设置区点位,做中午符合,做掉电保持.....................

学技术,人生不误——谁也是寂寞宇宙里的流星,只是你的坚持决定了你划过的痕迹。而且,铸造了普遍里的你的唯一。 4889

VC 6.0调试 之 DLL调试

你写的DLL或者ActiveX需要调试,因为他们不能直接运行 ,所以不能够直接调试,那么可以试试下面的方法:1. 在Vc 6.0中新建一个Win32 Console Application工程(例如DLLTest),代码中调用需要调试的DLL,编译该工程,生成Debug/DLLTest.exe,关闭该工程。2. 打开VC 6.0,打开需要调试的DLL工程,点击菜单Build->Set Active

FreeWave's space 6357

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC6创建工程的各种类型

用于开发 COM 组件、ActiveX 控件、进程内 / 进程外 COM 服务、Windows 系统服务,多用于组件化开发、Office 插件、跨程序调用模块,普通 C/C++ 学习完全用不到。用ATL技术制作COM程序,例如:WORD里面用的公式编辑器ATL:活动模板库。ATL是COM的开发工具。COM: (Component Object Model,组件对象模型),是微软当年定的一套「软件零件标准」。

知道这个有什么用? 927

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC++6.0下载安装使用教程

微软原版的 VC6.0 已经不容易找到,网上提供的都是经过第三方修改的版本,删除了一些使用不到的功能,增强了兼容性。这里我们使用 VC6.0 完整绿色版,它能够支持一般的 C/C++ 应用程序开发以及计算机二级考试。

此博客内容主要是小可日常工作中的一些问题解决的记录整理而成 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vs2010 创建dll 及调用

1.使用 VC6.0 生成 DLL 新建项目 “Win32 Dynamic-Link Library”,输入项目名称如:object,确定后选择 “A simple DLL project” 点击“完成”。  以下为cpp文件自动生成的代码: #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule,

liulina603的专栏 1万+

vc 6.0之DLL的调试

你写的DLL或者ActiveX需要调试,因为他们不能直接运行 ,所以不能够直接调试,那么可以试试下面的方法: 1. 在Vc 6.0中新建一个Win32 Console Application工程(例如DLLTest),代码中调用需要调试的DLL,编译该工程,生成Debug/DLLTest.exe,关闭该工程。 2. 打开VC 6.0,打开需要调试的DLL工程,点击菜单Build->Set Ac

bobopeng 1222

Windows下用VC6.0编译Lua源码 生成静态库和动态链接库

1、 下载Lua源代码 到 http://www.lua.org/download.html 官网下载,我下载的是 lua-5.3.0 版本,解压源码包,得到 src 文件夹,这例有我们下面编译需要的文件 也可以到我的百度网盘下载用VC6构建好的工程 http://pan.baidu.com/s/1hMHm2 当然也需要个编译器,这里我用的是Microsoft Visual C++

Totohack的专栏 2800

vc6.0的安装即OpenGL的使用

2、找到vc的安装地址,打开里边的VC98,再进入到Lib里面,把上面的glut.lib,glut32.lib放里边(替换是为了跟glut.h,glut.dll,glut32.dll兼容)补充:打开你自己建立的VC工程文件(以.dsw结尾),点击工程(projection),之后的点击设置(S),跳出一个对话,然后点击连接(link),会显示下面的界面。以上是创建了工程,还需创建 cpp文件,如果上述选择 创建“Hello,World”就可跳过该步骤。1、对glutdll压缩包解压缩,打开后看到五个文件。

m0_61166226的博客 3159

VC++创建DLL工程最简单实例

VC++创建DLL工程最简单实例 1.文件-》新建 -》 选择 Win32 Dynamic-Link Library -》 工程名称输入 MyDLL -》确定 2.向导1 选择《一个可以导出某些符号的DLL工程》 -》 提示创建工程骨架 点击确定 3.清空MyDLL.cpp和MyDLL.h文件 4.修改MyDll.cpp内容如下: #include "stdafx.h" #incl

那是一阵风 1万+
上一篇: 使用Windows的若干小常识
下一篇: DLL中如何应用函数指针与主程序交互
PerfectToday
博客等级 码龄18年 46粉丝 129原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值