VC 编写 stdcall 方式的DLL
来源:互联网 发布:talkback是什么软件 编辑:程序博客网 时间:2024/05/01 16:47
VC 编写 stdcall 方式的DLL
VC工具:VS2005
DELPHI 工具: DELPHI 7
VS2005 新建DLL
新建-项目 保存时选择 DLL
代码
// testdll.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
HRESULT __stdcall TestAdd(int i, int j)
{
return i + j;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
代码很简单,就一个 TestAdd
注意 不能使用VC的 extern"C" __declspec( dllexport ) HRESULT __stdcall TestAdd(int i, int j)
下一步,新建一个def文件(使用记事本新建,保存为def),VC默认为MFC的DLL带DEF的,其他的不带。
DEF代码:
LIBRARY "testdll"
EXPORTS
TestAdd @1
然后将def加入VS2005,VC6工程中,只要有DEF文件并将其添加到工程中,VC6就可以自动地生成DLL与其相应的Lib文件了。
但是VS2005不一样,需要指定DEF文件
工程 > 属性中的链接器,然后找到"输入"这一项. 在 "模块定义文件" 中输入 testdll.def.
然后编译
DELPHI 调用
TestAddFun = function (I: Integer; j: Integer): HRESULT; stdcall;
var
TestFun: TestAddFun;
H: HMODULE;
begin
H := LoadLibrary('testdll.dll');
if H <> 0 then
TestFun := GetProcAddress(H, 'TestAdd');
if Assigned(@TestFun) then
ShowMessage(IntToStr(TestFun(1, 20)));
FreeLibrary(H);
至此,调用成功
- VC 编写 stdcall 方式的DLL
- VC 编写 stdcall 方式的DLL
- stdcall 以及 其他的dll调用方式
- dll中的函数的调用方式统一用stdcall
- VC DLL的编写调用
- 如何在QT下调用VC/MFC编写的DLL,分为两种方式。
- VC中.dll文件的编写
- VC中.dll文件的编写
- Delphi调用VC++6.0编写的Dll
- VC 使用 MinGW编写的dll
- vc 编写dll
- VC编写DLL
- VC编写DLL
- VC编写DLL
- VC编写DLL教程
- VB调用VC dll的返回方式
- stdcall与DLL
- stdcall与DLL
- 用OpenXml SDK 2.0 创建一个页脚带页码的Word文档
- svn import
- C#中的委托和事件(续)
- tcpdump使用说明
- 如何将twitter关联到你的magento站点 oauth1
- VC 编写 stdcall 方式的DLL
- hibernate面试题1
- 多线程编程注意事项
- FTP连接报530 User 用户名 cannot log in home directory inaccessible的解决方法
- hibernate面试题2
- 调整状态
- android视频播放的代码
- hibernate面试题3
- Qt中设置widget背景颜色/图片的注意事项