使用vs2008制作dll文件,生成动态链接库,采用显示加载,以下记录实现过程:
1.制作dll文件
- vs2008中,File > New Project > Other Language > Win32 > Win32 Console Application. 输入项目名称:MyDll。点击【OK】,【Next】,选择dll单选按钮,完成。
- vs2008会自动生成一些代码,不用管它。创建MyDll.h,代码如下
MyDll.h 为了提高可用性,写了可回带值的函数供参考
//MyDLL.h
extern "C" _declspec(dllexport) int Max(int a, int b);
extern "C" _declspec(dllexport) int Min(int a, int b);
extern "C" _declspec(dllexport) bool cim2scada(char* cimId, char** scadaId);
- 创建MyDll.cpp
-
// MyDll.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include"MyDll.h"
#include <iostream>
int Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
int Min(int a, int b)
{
if(a>=b)return b;
else
return a;
}
bool cim2scada(char* cimId, char** scadaId){
char *result;
if(cimId == NULL){
printf("空指针!");
return false;
}else if(strlen(cimId) == 0){
printf("cimId无值!");
return false;
}
if(strcmp(cimId, "aaaaaa") == 0){
result = "1000";
}else if(strcmp(cimId, "bbbbbb") == 0){
result = "2000";
}
*scadaId = result;
printf("fun scadaId:%s\n", *scadaId);
return true;
}
- 编译一下,到工程的DEBUG目录,就可以找到MyDll.dll文件
2.创建测试程序
- vs2008中,File > New Project > Other Language > Win32 > Win32 Console Application. 输入项目名称:DllTest。点击【OK】,【Next】,选择console单选按钮,去掉“预编译头”默认勾选项,完成。
-
#include "windows.h"
#include <iostream>
void main(){
typedef int(*pMax)(int a, int b);
typedef int(*pMin)(int a, int b);
typedef bool(*pcim2scada)(char* cimid, char** scada);
HINSTANCE HDLL;
HDLL=LoadLibrary(L"MyDll.dll");//加载动态链接库MyDll.dll文件;
pMax Max=(pMax)GetProcAddress(HDLL,"Max");
pMin Min=(pMin)GetProcAddress(HDLL,"Min");
pcim2scada cim2scada=(pcim2scada)GetProcAddress(HDLL,"cim2scada");
int a = Max(5, 12);
char cimId[] = "aaaaaa";
char * scadaId = "";
bool b = cim2scada(cimId, &scadaId);
printf("Max结果为%d",a);
printf("cimId:%s, scadaId:%s", cimId, scadaId);
FreeLibrary(HDLL);//卸载MyDll.dll文件;
}
- 编译一下
- 拷贝MyDll.dll文件到DllTest项目的Debug目录下
- 打开一个控制台(cmd),进入DllTest > Debug目录,运行DllTest.exe
- 输出结果:
fun scadaId : 1000
Max结果为12
cimId:aaaaaa, scadaId:1000
有疑问,见附件或给我发邮件。
分享到:
相关推荐
vs2008 调用DLL 实现DLL的静态调用 运行通过
用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC制作DLL教程用VC...
vs2008环境dll mfc所需dll debug+release版本
如何你在vs调试中出现 调试器dll msdbg2.dll 未正确安装 请尝试安装此工具 来自vs2008安装包中的Remote Debugger/x86/rdbgsetup.exe
共有PB 两部分代码,Dll制作的demo ,与调用C#dll,自身的dll的demo; C# 代码两部分,生产dll ,调用dll .
使用vs2008创建dll的源代码,从这个例子中可以学习怎样创建dll,内有详细说明文档
它会交你如何生成自己的dll文件,这样,你的代码会更加简洁,安全!
里面有2个vs2005工程,分别是dll制作工程和dll使用工程,代码简洁,非常实用
制作DLL图标制作DLL图标制作DLL图标制作DLL图标制作DLL图标制作DLL图标制作DLL图标制作DLL图标制作DLL图标
TSCLIB.dll 文件 用于TSC打印机打印 使用TSPL2指令集执行打印
vs2013 编写的lib和dll样例,自己留存备用,可以供初学者学习用。
证券交易软件所提供的指标功能上还有不足,需要用户自己采用C++语言来重新开发。本样例用于指导DLL插件编写者一个入门的基础。
dll控件常规安装方法(仅供参考): 一、如果在运行某软件或编译程序时提示缺少、找不到dll等类似提示,您可将下载来的dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用...
通过一个简单的Demo,解决vs2008建立vc控制台应用程序时,出现“没有找到msvcr90d.dll”的错误,并且闪一下就没了的情况。
之实现了个dll的链接功能,vs2008。无其他复杂功能,适合初学者看。
利用DLL存储和调用图片,代码样例.rar
DLL笔记.part1
VS2015 C++ dll动态库的制作以及调用的资源文件,一个文件为动态库的制作,一个文件为调用的
msvcr90d.dll VS2008经常要用的东东,希望大家喜欢