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

Step 1:

New Project

win32_sum00

選擇Win32 Dynamic-Link Library

Step 2:

Select project template

win32_sum01

Step 3:

Project Summary

win32_sum02

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出去。

win32_sum03

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

win32_sum.def

1 LIBRARY win32_sum
2
3 EXPORTS
4 sum @1

Step 6:

編譯DLL

win32_sum04

編譯結果

复制代码
--------------------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)

全文完。

posted on   真 OO无双  阅读(8901)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2009-02-13 (筆記) 如何為ModelSim加入永久性的library mapping? (SOC) (ModelSim)
2008-02-13 (原創) 如何在VC8編譯libdecodeqr? (C/C++) (VC++) (Image Processing)

导航

统计

点击右上角即可分享
微信分享提示