请问如何编写自己的库,并以dll形式加载?谢谢。

csumck 2004-04-10 10:10:34
如题。
最好能说一下要注意的事项。
谢谢!!
谢谢!!
...全文
71 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
byf2002 2004-04-10
  • 打赏
  • 举报
回复
讲得非常详细
byf2002 2004-04-10
  • 打赏
  • 举报
回复
都别说了,下本电子书吧,专门讲DLL编程的。

http://218.108.41.12/vchome/book/mydownload/vchome_dll.chm

一切尽收眼底。
tanyaliji 2004-04-10
  • 打赏
  • 举报
回复
记住刚才动态库工程的名称 .Dll.
继续:
2.加入一个.cpp文件,可以任意起名,注意如果没有这个文件,就不能生成动态库。
先把自己加的函数进行声明:
int MyFunc(int a);
复制下面的固定代码(也可以没有)

BOOL WINAPI DLLEntryPoint(HINSTANCE hDLL,DWORD dwReason,LPVOID Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
{//一些初始化代码
::MessageBox(NULL,"dll enter",NULL,MB_OK);
break;
}
case DLL_PROCESS_DETACH:
{//一些用于清理的代码
break;
}
}
return TRUE;
}

具体的定义自己的函数
int MyFunc(int a)
{
a+=100;
return a;
}
3.加入一个.def文件,必须是这个后缀名,不是所谓的Macro,找不到可以自己建一个这样的后缀名
复制下面的代码,注意LIBRARY后面就是动态库的名字(动态库工程的名字)

LIBRARY MyDll

DESCRIPTION 'ha ha My Dll Success'
EXPORTS

MyFunc

4.测试动态库
在自己的工程文件中加入以下代码,注意加在与自己用动态库的代码同一文件里
HINSTANCE ghMathsDLL=NULL;
typedef int (*SUMMARY)(int);
SUMMARY wodehanshu;

5.引入动态库与函数
if(ghMathsDLL!=NULL)
return; //动态库已打开
ghMathsDLL=LoadLibrary("动态库文件路径/MyDll.dll");
if(ghMathsDLL==NULL)//打开动态库失败
AfxMessageBox("Cannot load DLL file!");

wodehanshu=(SUMMARY)GetProcAddress(ghMathsDLL,"MyFunc");
int i;
i=wodehanshu(10);

6.附加关于动态库的
FARPROC pfn=GetProcAddress(ghMathsDLL,"MyFunc");//这也是取动态库函数地址的,但下面不知怎么用

HINSTANCE hinst;
hinst=GetModuleHandle("动态库文件路径/MyDll.dll");//如果hinst==NULL,则此程序没有引入指定的动态库,否则hinst就是动态库的地址,与LoadLibrary返回的一样。


//得到指定的动态库的路径,hinst由LoadLibrary返回
PTSTR path1;
path1=new char[90];
GetModuleFileName(hinst,path1,90);
MessageBox(path1);


FreeLibrary(hinst);//卸载动态库


itmaster 2004-04-10
  • 打赏
  • 举报
回复
dll会输出lib文件
记得用dll的时候设置上
Mr_Ldh 2004-04-10
  • 打赏
  • 举报
回复
一两句话说不清。
tanyaliji 2004-04-10
  • 打赏
  • 举报
回复
用MFC,
创建工程时选则MFC APPWIZARD (DLL).
当然你的程序须要函数做为接口
薛定谔之死猫 2004-04-10
  • 打赏
  • 举报
回复
看看书或下代码看看,不是一下两下说得清楚的
内容概要:本文围绕PID控制在芯片行业晶圆探针台精密运动定位系统中的实战应用展开,重点阐述了级联PID控制、前馈控制、S型加减速规划、摩擦力补偿和陷波滤波器等关键技术。通过C++实现的双闭环级联PID控制器代码,深入剖析了位置环与速度环的协同机制、低通滤波抑制噪声、积分限幅防饱和以及力矩输出保护等工业级设计细节,揭示了高端半导体设备中高精度、高响应运动控制的实现原理。同时展望了数据驱动与智能化趋势下,自抗扰控制(ADRC)和强化学习(RL)在PID参数自整定中的未来发展。; 适合人群:具备自动控制理论基础和C++编程能力,从事精密设备控制、半导体装备制造或运动控制算法研发的工程师,尤其是有1-5年工作经验的技术人员;; 使用场景及目标:①掌握晶圆探针台中微米级定位的运动控制核心技术;②理解并实现双闭环PID在实际工业系统中的抗干扰、防振荡设计;③学习如何通过滤波、限幅、前馈等手段提升控制系统鲁棒性与精度;④为向智能PID控制升级提供技术储备; 阅读建议:此资源结合真实工业场景与代码实现,建议读者结合控制理论知识,逐行分析代码逻辑,并在仿真环境中复现控制器行为,重点关注内外环耦合关系、滤波器设计与抗饱和策略的实际作用。
源码链接: https://pan.quark.cn/s/557aa9a7949b Quartus Prime是由Altera公司(现归Intel所有)研发的全面电子设计自动化软件,主要应用于现场可编程门阵列(FPGA)与复杂可编程逻辑器件(CPLD)的设计、仿真、综合、布局布线及编程。在此案例中,涉及的是Quartus Prime 17.1版本的安装程序,该程序集成有器件和其他必需模块,适用于Windows 10 64位系统环境,并且已有用户进行测试验证其可用性。**1. Quartus Prime概述**Quartus Prime作为Altera/Intel FPGA设计的核心平台,提供了一个一体化的开发平台,支持从构思到硬件落地的完整开发周期。该软件不仅涵盖逻辑综合、时序评估、仿真、物理布局等基础功能,还提供高速接口知识产权核、嵌入式处理器系统、内存资源管理等多种高级特性。**2. Quartus Prime 17.1版本更新**- 优化的QSYS系统构建工具:17.1版本可能对QSYS进行了升级,使得系统集成更为便捷,支持更多外围设备和处理器模型。- 性能增强:可能提升了综合及布局布线的效率,减少了设计的功耗与面积。- 新器件支持:或许增加了对最新发布的Altera FPGA和CPLD的支持,比如Arria 10、Cyclone 10等系列。- 调试功能强化:可能加强了硬件调试工具,如JTAG调试和软件调试器的效能。**3. 器件**器件是Quartus Prime的重要组成部分,其中包含Altera FPGA和CPLD的参考,这些中收录了各类逻辑单元、输入输出端口、存储单元等硬件资源的模型,用于设计阶段进行逻辑综合和布局布线。**4. 其...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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