自己创建自己的dll库,有时候会显得特别方便,而且非常简单。。。下面就简单在VS2005上介绍dll库创建和调用的全过程。
一:创建自己的dll
1)创建一个win32 console application 选择dll
然后创建一个DllTest.cpp code如下:
// lib3.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
extern "C" _declspec(dllexport) int Add(int,int); //注意了
#ifdef _MANAGED
#pragma managed(push, off)
#endif
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
int _declspec(dllexport) Add(int a, int b)
{
//return MessageBox(NULL, L"GOOD", L"Caption", 0 );]
return a+b;
}
#ifdef _MANAGED
#pragma managed(pop)
#endif
编译便可生成dll文件
二: 调用测试刚才生成的dll。
上面的dll有一个加法Add的函数,记得刚上面的那个dll拷贝到下面这个main函数所在的文件同目录下,main代码如下:
//#include "stdafx.h"
#include <windows.h>
#include <iostream>
typedef int (* MYPROC)(int,int); //注意别写错了;
int main(int argc, char* argv[])
{
int error;
MYPROC pFunc;
HMODULE hdll_lib =::LoadLibraryEx(TEXT("DllTest.dll"),NULL,0);
//
if(hdll_lib == NULL)
{
error = GetLastError();
printf("error = %d",error);
FreeLibrary(hdll_lib); return -1;
}
pFunc=(MYPROC)GetProcAddress(hdll_lib, "Add"); //
if(!pFunc)
{
error = GetLastError();
printf("error = %d",error);
FreeLibrary(hdll_lib); return -1;
}
int a=pFunc(1,2);//
printf("%d\n",a);
FreeLibrary(hdll_lib);
system("pause");
return 0;
}
分享到:
相关推荐
Delphi创建Dll和调用Dll示例(包含Dll窗体调用) 网上介绍比较杂乱,特地整理了一份Demo代大家学习参考。 1.socketA_dll 为dll工程目录。 2.LoadDllDemo 为【静态调用】dll工程目录。 3.LoadDllDemo_动态调用 为...
封装自定义方法,编译成DLL文件供外部调用
DelphiDll创建与调用源码 使用delphi生成动态连接库文件 并使用动态连接库
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试源码
c++ 创建dll(动态库)、static lib(静态库),以及dll的相互调用 示例vs2022工程 sln项目文件在 c++_dll_staticLib\libtest\MathTestLib 目录下 以前有小错误,更新了错误(2023-05-28)
C#中创建和调用DLL 含源码 学习C#调用dll的例子
VC中DLL的调用规则 VC中DLL的调用规则 VC中DLL的调用规则
通过VS2017,生成dll项目,生成dll,并在另外程序中调用dll。....................
DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用DLL调用
Dll调用与嵌套调用 一.Win32动态链接库 1.制作的步骤: (1)新建WIN32 Dynamic-link Library工程,工程名为MyDll,选择A simple DLL project类型。 (2)MyDll.h的内容如下: 以下是引用片段: extern "C" _...
DLL的动态调用 DLL的动态调用 DLL的动态调用 DLL的动态调用
一个完整的DLL创建以及实现过程,文件相对目录都有,只需要按照顺序先编译CreateDLl生产Dll文件,然后编译TestDllLoad进行调用
LabVIEW中DLL文件的创建及调用方法
编写QT的dll,QT调用QT的dll,QT调用外部的dll,MFC程序调用QT的dll,
隐式调用dll和显式调用dll,并做了demo在同一个solution下编译就可以尝试,通过宏来控制隐式和显示调用。显示调用即使dll改名依然能够获取函数地址,通过函数指针来使用。
delphi多个dll互相调用,有别于Exe调用dll,特别是存在窗口的dll的程序中...................!
C编写dll及调用C编写dll及调用C编写dll及调用
dll创建和使用工程,可借鉴作为模板。开发环境VS2012。
很简单的创建DLL文件及外部调用DLL的实力,对于没有这方面经验的初学者有很好的参考价值
vs2008 调用DLL 实现DLL的静态调用 运行通过