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繼續維護以前的程式,儘管新的程式陸續改用.NET,要與舊的程式溝通時,仍然是用Visual C++ 6.0將以前的Business Rule包成DLL給.NET使用。

Step 1:

New Project

選擇Win32 Dynamic-Link Library

Step 2:

Select project template

Step 3:

Project Summary

Step 4:

win32_sum.cpp / C++

1 // win32_sum.cpp : Defines the entry point for the DLL application.
2  //
3  
4 #include "stdafx.h"
5
6 BOOL APIENTRY DllMain( HANDLE hModule,
7 DWORD ul_reason_for_call,
8 LPVOID lpReserved
9 )
10 {
11 return TRUE;
12 }
13
14  // our function to export from dll
15  int _stdcall sum(int x, int y) {
16 return x + y;
17 }

14行

// our function to export from dll
int _stdcall sum(int x, int y) {
return x + y;
}

 為我們dll所要export的function,一定要加上_stdcall,其他就如同我們寫一般C/C++的function一樣。

Step 5:

DEF files

我們需要另外寫DEF檔,告訴Visual C++哪些function想要export出去。

New一個文字檔,檔名與project一樣,但副檔名改為.def。

win32_sum.def

1 LIBRARY win32_sum
2
3 EXPORTS
4 sum @1

Step 6:

編譯DLL

編譯結果

--------------------Configuration: win32_sum - Win32 Debug--------------------
Compiling...
StdAfx.cpp
Compiling...
win32_sum.cpp
Linking...
Creating library Debug/win32_sum.lib and object Debug/win32_sum.exp

win32_sum.dll - 0 error(s), 0 warning(s)

將win32_sum.dll複製到c:\windows\目錄下,則其他應用程式就可以使用你開發的DLL了。

完整程式碼下載
win32_sum.7z

Reference
MSDN Exporting from a DLL Using DEF Files

See Also

(筆記) 如何使用C#使用Win32 DLL? (.NET) (C#) (Windows Form)

全文完。

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

  1. 创建Silverlight 1.0 開發環境

    建置 Silverlight 1.0 開發環境 摘至网络 MSN Space.Google Doc .Google Blog Chui-Wen Chiu 2007.07.26 下載 1. Sliver ...

  2. 建置 Silverlight 1.0 開發環境

    摘至网络 MSN Space.Google Doc .Google Blog Chui-Wen Chiu 2007.07.26 下載 1. Sliverlight 1.0 Beta Runtime 2 ...

  3. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)?

    Abstract 這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer. Introduction 在(筆記) 如何在字 ...

  4. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)? (C/C++) (C)

    Abstract 這是一個實務上常用的功能,可惜在C語言的string.h並沒有提供,本文實作出一個小function達到此功能,並搭配pointer. Introduction 在(筆記) 如何在字 ...

  5. OpenCV學習筆記(6)基於 VC+OpenCV+DirectShow 的多個攝像頭同步工作

    http://blog.csdn.net/chenyusiyuan/article/details/4643313 因項目需要采集2個攝像頭的數據進行雙目檢測,一開始采用以下代碼來測試: #inclu ...

  6. 2022.10.EEP開發筆記-1

    做 IT 这么多年,一直都有工作笔记的习惯.可能是纸本,也可能是WORD档.因为 IT 真的要学很多很多东西.而且在不同公司的 IT 单位,使用不同的系统,不同的开发语言,不同的数据库.学习力太差,很 ...

  7. [Apache] Apache 從 2.2 換至 2.4 httpd.conf 的調整筆記 (windows 環境)

    原文地址: http://www.dotblogs.com.tw/maplenote/archive/2012/07/20/apache24_httpd_conf.aspx 整理一下 Windows ...

  8. 小米kali linux蓝牙,小米筆記本在Kali Linux下所遇問題部分解決方案(持續更新中)...

    0.本人不才,在小米筆記本安裝Kali Linux所遇到的問題用了兩天摸索才得以解決_(:3 」∠)_ ,kali被我裝了5次,win10的引導被我誤刪了兩次(*/ω\*). 在摸索的過程中發現關於小 ...

  9. golang 筆記:make 與 new 的差別

    转载:https://medium.com/d-d-mag/golang-%E7%AD%86%E8%A8%98-make-%E8%88%87-new-%E7%9A%84%E5%B7%AE%E5%88% ...

最新文章

  1. LIVE555再学习 -- testRTSPClient 实例
  2. Java如何校验中文乱码_java如何判断是否中文乱码
  3. Timer定时器控件 1130
  4. 在mac上安装python版的hanlp/JPype1
  5. dpkg:处理 xxx (--configure)时出错解决办法(转载)
  6. css横向排列_CSS中伪元素和伪类的经典使用技巧
  7. 伊洛纳登录显示服务器连接中,伊洛纳萌新入坑常见问题汇总
  8. stella forum 知识库---一些错误的修补
  9. 035 spring amqp
  10. Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
  11. iNode客户端安装
  12. 娱乐小工具微信小程序源码下载/支持多种流量主
  13. SWOT分析思维的一些基本思考与见解
  14. laravel 框架使用hdjs 实现富文本编辑器功能
  15. Word撤销键(Ctrl+z)无效的解决方法
  16. sinx/cosx的泰勒展开式与库函数的比较
  17. windbg调试命令9(dt、d)
  18. 使用电容触摸屏做画板——软件IIC(二)
  19. 一个基于场景感应的android智能手机防丢失系
  20. 如何根据当前时间获取下一个整五分钟

热门文章

  1. 《Python语言程序设计》——2.10 增强型赋值运算符
  2. Win 7 隐藏小功能——屏幕录制
  3. C# AutoMapper的简单扩展
  4. 我一不小心把ubuntu里的ps这样的命令删掉了,应该怎么重装呢
  5. 《迷人的8051单片机》----3.4 程序
  6. mfschunkserver安装脚本
  7. mac curl命令下载文件
  8. eval解析json注意点
  9. 知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)
  10. ibatis example Class 使用