求用c/c++编写的dll文件。。。

海川520 2010-02-05 02:44:03
我做测试用。不会用c/c++生成dll文件,所有求大家帮忙写几个dll文件。

需求:函数中最好把c/c++特有的类型也都用上。例如,结构、指针什么的。返回值最好也加上返回类型。
最好可以写几个简单的函数。在弄几个复杂的函数。函数体不用写也行。最好有方法调用说明。
...全文
146 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
海川520 2010-02-06
  • 打赏
  • 举报
回复
我用vs6.0建立。是建立工程还是文件
yingzhilian2008 2010-02-05
  • 打赏
  • 举报
回复
学习来了
djlxue 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 javajc 的回复:]
def和h文件都需要自己建立么
[/Quote]
要自己建立.h 没什么好说的
def 参看MSDN 不用什么高级用法的话参看我上面的

LIBRARY "DLLNAME"

EXPORTS
FUCNAME
海川520 2010-02-05
  • 打赏
  • 举报
回复
def和h文件都需要自己建立么
qqiuzaihui 2010-02-05
  • 打赏
  • 举报
回复
以前弄过一个, 给你参考:

/***************************** ParkLib.def 文件内容 ***************************/
; ParkLib.def : Declares the module parameters for the DLL.

LIBRARY "ParkLib"
DESCRIPTION 'ParkLib Windows Dynamic Link Library'

EXPORTS
; Explicit exports can go here
MyCustomFunction





/****************************** ParkLib.h 文件内容 ***************************/
/*--------------------------------------------------------------------------
ParkLib.H header file
----------------------------------------------------------------------------*/
#ifdef __ParkStdFee
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

/******************************************************************************
* 自定义一个数据结构用于返回
******************************************************************************/
typedef struct
{
int result;
double circle;
char* version;
}_MY_CUSTOM_;

/******************************************************************************
* 函数功能:根据输入的 [type] ,[name] 及 [product] 返回结果
* 输 入:[type] ,[name] 及 [product]
* 返 回:_MY_CUSTOM_ 结构数据
******************************************************************************/
EXPORT _MY_CUSTOM_ CALLBACK MyCustomFunction(int type, char* name, char* product);





/***************************** ParkLib.C 文件内容 ****************************/
/*---------------------------------------------------------------------------
ParkLib.C -- Easy Drawing Routine Library module
-----------------------------------------------------------------------------*/
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include "ParkLib.h"

_MY_CUSTOM_ CALLBACK MyCustomFunction(int type, char* name, char* product); //自定义函数

int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
return TRUE ;
}

EXPORT _MY_CUSTOM_ CALLBACK MyCustomFunction(int type, char* name, char* product)
{
_MY_CUSTOM_ myCustom;

myCustom.result = type;
myCustom.circle = type * 2;
myCustom.version = name;

return myCustom;
}



/****************************** 测试程序(MFC程序) *****************************/
1. 在头文件中声明一个结构体:
struct _MY_CUSTOM_
{
int result;
double circle;
char* version;
};

2. 创建一个结构体实例:
struct _MY_CUSTOM_ myCustom;

3. 测试代码:
HINSTANCE hInst = LoadLibrary("HmPark.dll");
typedef _MY_CUSTOM_ (CALLBACK *ADDPROC)(int type, char* name, char* product);
ADDPROC MyCustomFunction = (ADDPROC)GetProcAddress(hInst, "MyCustomFunction");

if( !MyCustomFunction )
{
MessageBox("找不到动态库");
return;
}

char* name = "my";
char* product = "custom";
int type = 5;
CString str;

try
{
myCustom = MyCustomFunction(type, name, product);
}
catch(...)
{
MessageBox("Error");
}

str.Format("\n%d, %f, %s.\n", myCustom.result, myCustom.circle, myCustom.version );
MessageBox( str );

4. 输出结果: 5, 10.000000, my.
djlxue 2010-02-05
  • 打赏
  • 举报
回复

LIBRARY "GetHardInfo"

EXPORTS
GetCPUID

配合模块定义文件,不会发生名字改编。
djlxue 2010-02-05
  • 打赏
  • 举报
回复

***************************************/
extern "C" _declspec(dllexport) void _stdcall GetCPUID(char pcCPUID[36])
{
memset(pcCPUID,0,sizeof(pcCPUID));
unsigned long s1=0,s2=0,s3=0,s4=0;
_asm
{
mov eax,01h
xor edx,edx
cpuid
mov s1,eax
mov s2,ebx
mov s3,ecx
mov s4,edx
}
sprintf_s(pcCPUID,CPUID_NUM,"%08x-%08x-%08x-%08x",s1,s2,s3,s4);
return ;
}

早期代码供参考
tbwork 2010-02-05
  • 打赏
  • 举报
回复
分给我,我有一个hook程序的DLL,你要可以给你。
加我Q,发给你:542561233,写出姓名
海川520 2010-02-05
  • 打赏
  • 举报
回复
有更细点的么?关于如何定义。调用什么的。
xboy 2010-02-05
  • 打赏
  • 举报
回复
怎么编译dll,以及怎么去调用,下面这个帖子很详细,而且代码都是直接克编译的。

参考下吧:
http://www.vckbase.com/document/viewdoc/?id=271
昵称很不好取 2010-02-05
  • 打赏
  • 举报
回复

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧