首先来看看c++中dll工程的创建过程
我用的是vs2012,首先创建一个win32项目,在应用程序向导的应用程序类型中选者dll,假定我的项目名称为win32dll,那么向导会自动生成一个win32dll.cpp的文件,我们只要在其中加要输出的函数就可以了。
以下我写的几个函数
===================================================
// Win32Dll.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
static int g_init = 0;
void __stdcall Init ( )
{
g_init++ ;
}
int __stdcall GetInitCount ( )
{
return g_init ;
}
int __stdcall GetChange( int pay, int cost )
{
return ( pay-cost) ;
}
//dll结构调用
typedef struct
{
char name[32];
char passwd[32];
}USER_INFO_S;
static USER_INFO_S *g_user = NULL ;
//dll中结构作为输入变量
void __stdcall SetUser( USER_INFO_S * user )
{
if ( g_user != NULL ) delete g_user ;
g_user = new USER_INFO_S ;
memcpy( (char *)g_user, (char *)user, sizeof(USER_INFO_S) );
}
//dll中结构作为输出变量
bool __stdcall GetUser( USER_INFO_S *user )
{
if ( g_user != NULL )
{
memcpy( (char *)user, (char *)g_user, sizeof(USER_INFO_S) );
return true ;
}else
return false ;
}
================================================
定义模块文件
仅仅这样系统编译后输出的函数名,wpf还是不能认识,还得加上一个模块定义文件
在工程中添加新建项,代码中的模块定义文件,取名叫win32dll.def
我想输出上面代码中的所有文件给wpf用,那么win32dll.def中的代码如下
================================================