首页 > 其他分享 >无涯教程-MFC - 库资源

无涯教程-MFC - 库资源

时间:2023-12-11 15:31:51浏览次数:30  
标签:教程 MFC const int double 无涯 Nbr strTemp 步骤

库是一组功能,类或其他资源,可用于需要已经实现的实体的程序,而无需了解这些功能,类或资源是如何创建的或如何创建的功能,库使程序员可以轻松地使用由另一个人或公司创建的函数,类和资源等,并相信此外部源是可靠且高效的。

库分为两大类-

  • 静态库
  • 动态库

静态库

静态库是一个文件,其中包含外部程序可以用来补充其功能的函数,类或资源,要使用库,程序员必须创建一个链接,该项目可以是控制台应用程序,Win32或MFC应用程序,库文件具有lib扩展名。

步骤1 - 通过创建一个新的Win32 Project,无涯教程来看一个简单的静态库示例。

static 库

步骤2 - 在“Application Wizard”对话框中,选择“Static library”选项。

static 库

步骤3 - 单击完成以继续。

static 库

步骤4 - 在Solution Explorer中的项目上单击鼠标右键,然后从"Add"→"New Project"菜单选项中添加头文件。

static 库

步骤5 - 在"Name"字段中输入Calculator.h,然后单击"Add"。

在头文件中添加以下代码-

#pragma once
#ifndef _CALCULATOR_H_
#define _CALCULATOR_H_
double Min(const double *Numbers, const int Count);
double Max(const double *Numbers, const int Count);
double Sum(const double *Numbers, const int Count);
double Average(const double *Numbers, const int Count);
long GreatestCommonDivisor(long Nbr1, long Nbr2);
#endif //_CALCULATOR_H_

步骤6 - 添加项目中的源(*的.cpp)文件。

static 库

步骤7 - 在"Name"字段中输入Calculator.cpp,然后单击"Add"。

步骤8 - 在* .cpp文件中添加以下代码-

#include "StdAfx.h"
#include "Calculator.h"
double Min(const double *Nbr, const int Total) {
   double Minimum = Nbr[0];
   for (int i = 0; i < Total; i++)
      if (Minimum > Nbr[i])
         Minimum = Nbr[i];
   return Minimum;
}
double Max(const double *Nbr, const int Total) {
   double Maximum = Nbr[0];
   for (int i = 0; i < Total; i++)
      if (Maximum < Nbr[i])
         Maximum = Nbr[i];
   return Maximum;
}
double Sum(const double *Nbr, const int Total) {
   double S = 0;
   for (int i = 0; i < Total; i++)
      S += Nbr[i];
   return S;
}
double Average(const double *Nbr, const int Total) {
   double avg, S = 0;
   for (int i = 0; i < Total; i++)
       S += Nbr[i];
   avg = S/Total;
   return avg;
}
long GreatestCommonDivisor(long Nbr1, long Nbr2) {
   while (true) {
      Nbr1 = Nbr1 % Nbr2;
      if (Nbr1 == 0)
         return Nbr2;
      Nbr2 = Nbr2 % Nbr1;
      if (Nbr2 == 0)
         return Nbr1;
   }
}

步骤9 - 在主菜单中,通过单击 Build→Build MFCLib 来构建该库。

static 库

步骤10 - 成功构建库后,它将显示以上消息。

步骤11 - 要使用库中的这些功能,让无涯教程添加另一个基于File→New→Project的MFC对话框应用程序。

static 库

步骤12 - 转到MFCLib\Debug文件夹,然后将头文件和* .lib文件复制到MFCLibTest项目,如以下快照所示。

static 库

步骤13 - 要将库添加到当前项目,请在主菜单上单击Project→Add Existing Item,然后选择MFCLib.lib。

步骤14 - 设计对话框,如以下快照所示。

static 库

步骤15 - 为两个值类型为double的编辑控件添加值变量。

static 库

步骤16 - 在对话框的末尾为静态文本控件添加值变量。

static 库

步骤17 - 为"Calculate"按钮添加事件处理程序。

要从库中添加功能,无涯教程需要在CMFCLibTestDlg.cpp文件中包含头文件。

#include "stdafx.h"
#include "MFCLibTest.h"
#include "MFCLibTestDlg.h"
#include "afxdialogex.h"
#include "Calculator.h"

步骤18 - 下面是按钮的事件处理程序的执行。

void CMFCLibTestDlg::OnBnClickedButtonCal() {
   //TODO: Add your control notification handler code here
   UpdateData(TRUE);
   CString strTemp;
   double numbers[2];
   numbers[0] = m_Num1;
   numbers[1] = m_Num2;

   strTemp.Format(L"%.2f", Max(numbers,2));
   m_strText.Append(L"Max is:\t" + strTemp);

   strTemp.Format(L"%.2f", Min(numbers, 2));
   m_strText.Append(L"\nMin is:\t" + strTemp);
   
   strTemp.Format(L"%.2f", Sum(numbers, 2));
   m_strText.Append(L"\nSum is:\t" + strTemp);

   strTemp.Format(L"%.2f", Average(numbers, 2));
   m_strText.Append(L"\nAverage is:\t" + strTemp);

   strTemp.Format(L"%d", GreatestCommonDivisor(m_Num1, m_Num2));
   m_strText.Append(L"\nGDC is:\t" + strTemp);

   UpdateData(FALSE);
}

步骤19 - 编译并执行上述代码后,您将看到以下输出。

static 库

步骤20 - 在编辑字段中输入两个值,然后单击计算。从库计算后,您现在将看到输出。

static 库

动态库

Win32 DLL是可用于Microsoft Windows计算机上运行的程序的库,作为普通库,它由分组在文件中的功能/其他资源组成。

DLL的缩写代表动态链接库,这意味着,与静态库相反,DLL使程序员可以决定何时以及如何将其他应用程序链接到这种类型的库。

如,DLL允许不同的应用程序根据需要并根据需要使用其库,事实上,在不同的编程环境创建的应用程序可以使用存储在一个特定的DLL功能或资源。因此,应用程序动态链接到该库。

步骤1 - 让无涯教程通过创建一个新的Win32 Project来研究一个简单的示例。

动态库

步骤2 - 在"Application Wizard"部分中,单击" DLL"单选按钮。

动态库

步骤3 - 单击完成以继续。

步骤4 - 在MFCDynamicLib.cpp文件中添加以下函数,并通过使用-公开其定义-

extern "C" _declspec(dllexport)

步骤5 - 将_declspec(dllexport)修饰符用于将在DLL之外访问的每个函数。

//MFCDynamicLib.cpp : Defines the exported functions for the DLL application.//

#include "stdafx.h"

extern "C" _declspec(dllexport) double Min(const double *Numbers, const int Count);
extern "C" _declspec(dllexport) double Max(const double *Numbers, const int Count);
extern "C" _declspec(dllexport) double Sum(const double *Numbers, const int Count);
extern "C" _declspec(dllexport) double Average(const double *Numbers, const int Count);
extern "C" _declspec(dllexport) long GreatestCommonDivisor(long Nbr1, long Nbr2);

double Min(const double *Nbr, const int Total) {
   double Minimum = Nbr[0];
   for (int i = 0; i < Total; i++)
      if (Minimum > Nbr[i])
         Minimum = Nbr[i];
   return Minimum;
}
double Max(const double *Nbr, const int Total) {
   double Maximum = Nbr[0];
   for (int i = 0; i < Total; i++)
      if (Maximum < Nbr[i])
         Maximum = Nbr[i];
   return Maximum;
}
double Sum(const double *Nbr, const int Total) {
   double S = 0;
   for (int i = 0; i < Total; i++)
      S += Nbr[i];
   return S;
}
double Average(const double *Nbr, const int Total){
   double avg, S = 0;
   for (int i = 0; i < Total; i++)
      S += Nbr[i];
   avg = S/Total;
   return avg;
}
long GreatestCommonDivisor(long Nbr1, long Nbr2) {
   while (true) {
      Nbr1 = Nbr1 % Nbr2;
      if (Nbr1 == 0)
         return Nbr2;
      Nbr2 = Nbr2 % Nbr1;
      if (Nbr2 == 0)
         return Nbr1;
   }
}

步骤6 - 要创建DLL,请在主菜单上,单击主菜单中的Build> Build MFCDynamicLib。

动态库

步骤7 - 成功创建DLL后,您将在输出窗口中看到消息显示。

步骤8 - 打开Windows资源管理器,然后打开当前项目的Debug文件夹。

步骤9 - 请注意,已创建了一个具有dll扩展名的文件和另一个具有lib扩展名的文件。

动态库

步骤10 - 要测试具有dll扩展名的文件,无涯教程需要从File→New→Project创建一个基于MFC对话框的新应用程序。

动态库

步骤11 - 转到MFC Dynamic Lib\Debug文件夹,然后将* .dll和* .lib文件复制到MFC LibTest项目中,如以下快照所示。

动态库

步骤12 - 要将DLL添加到当前项目,请在主菜单上单击"Project"→"Add Existing Item",然后选择MFCDynamicLib.lib文件。

步骤13 - 设计对话框,如以下快照所示。

动态库

步骤14 - 为两个值类型为double的编辑控件添加值变量。

动态库

步骤15 - 在对话框的末尾为静态文本控件添加值变量。

动态库

步骤16 - 为"Calculate"按钮添加事件处理程序。

步骤17 - 在使用DLL的项目中,必须使用_declspec(dllimport)修饰符声明将要访问的每个函数。

步骤18 - 在MFCLibTestDlg.cpp文件中添加以下函数声明。

extern "C" _declspec(dllimport) double Min(const double *Numbers, const int Count);
extern "C" _declspec(dllimport) double Max(const double *Numbers, const int Count);
extern "C" _declspec(dllimport) double Sum(const double *Numbers, const int Count);
extern "C" _declspec(dllimport) double Average(const double *Numbers, const int Count);
extern "C" _declspec(dllimport) long GreatestCommonDivisor(long Nbr1, long Nbr2);

步骤19 - 这是按钮事件处理程序的实现。

void CMFCLibTestDlg::OnBnClickedButtonCal() {

   //TODO: Add your control notification handler code here
   UpdateData(TRUE);

   CString strTemp;
   double numbers[2];
   numbers[0] = m_Num1;
   numbers[1] = m_Num2;

   strTemp.Format(L"%.2f", Max(numbers,2));
   m_strText.Append(L"Max is:\t" + strTemp);

   strTemp.Format(L"%.2f", Min(numbers, 2));
   m_strText.Append(L"\nMin is:\t" + strTemp);

   strTemp.Format(L"%.2f", Sum(numbers, 2));
   m_strText.Append(L"\nSum is:\t" + strTemp);

   strTemp.Format(L"%.2f", Average(numbers, 2));
   m_strText.Append(L"\nAverage is:\t" + strTemp);

   strTemp.Format(L"%d", GreatestCommonDivisor(m_Num1, m_Num2));
   m_strText.Append(L"\nGDC is:\t" + strTemp);
 
   UpdateData(FALSE);
}

步骤20 - 编译并执行上述代码后,您将看到以下输出。

动态库

步骤21 - 在编辑字段中输入两个值,然后单击计算。从DLL计算之后,您现在将看到输出。

动态库

参考链接

https://www.learnfk.com/mfc/mfc-libraries.html

标签:教程,MFC,const,int,double,无涯,Nbr,strTemp,步骤
From: https://blog.51cto.com/u_14033984/8774309

相关文章

  • 无涯教程-MFC - GDI
    Windows提供了在设备上下文中使用的各种绘图工具,它提供了用于绘制线条的笔,用于填充内部的画笔以及用于绘制文本的字体,MFC提供了等效于Windows中绘图工具的图形对象类。Drawing绘制设备上下文是Windows数据结构,其中包含有关设备(例如显示器或打印机)的图形属性的信息。所有绘图......
  • 无涯教程-MFC - 网络编程
    Microsoft提供了许多用于对客户端和服务器应用程序进行编程的API,正在为互联网编写许多新应用程序,并且随着技术,浏览器功能和安全选项的变化,将编写新类型的应用程序。MFC提供了一个CSocket类,用于使用WindowsSockets编写网络通信程序。这是CSocket类中方法的列表。Sr.No.Name......
  • ENVI 5.6安装教程及安装包下载
    下载: http://dt1.8tupian.net/2/29913a31b1000.pg3软件介绍目前ENVI5.6版本推出了许多有用的新功能,比如深度学习、cropscience等。如果是遥感专业人士,还是建议安装功能更强大的5.6版本(5.6和5.3版本可以共存)。安装主程序安装包总目录:(1)打开软件目录,点击envi56-win.exe......
  • 学习教程大全(java、c#、Web、GIS、Andriod)
    学习教程大全(java、c#、Web、GIS、Andriod)1.Andriod││AndroidApp开发入门使用AndroidStudio2.X开发环境第2版.pdf││AndroidStudio开发实战:从零基础到App上线.pdf││Android4高级编程(jb51.net).pdf││Android程序员面试宝典pdf扫描版.pdf......
  • HyperWorks2021软件安装教程
    下载软件资源下载产品介绍:HyperWorks一款功能强大的开放式架构仿真软件。拥有先进的技术以及高性能、高效和创新的产品,为用户提供了设计、仿真和制造等服务。支持电磁分析设计、材料建模制造、多物理场分析等功能,用户可以进行庞大且复杂的有限元模型创建操作。软件特色1......
  • Adobe Acrobat 2023安装教程
    一、产品介绍:AdobeAcrobat中文版是一款由Adobe官方推出的PDF编辑和阅读软件,是目前互联网上最专业最优秀的桌面pdf解决方案,它将全球最佳的PDF解决方案提升到新的高度,配有直观触控式界面,通过开发强大的新功能,使用户能在任何地方完成工作。新工具中心可更简单迅速地访问最常使用的......
  • CAD2024 下载及安装教程
    一、下载:资源下载二、安装教程:解压之前,关闭杀毒软件(包括系统自带安全中心、第三方安全卫士/杀毒软件等)关闭方法可参考一键关闭Win系统自带杀毒软件/安全中心(附工具下载)适用于所有win系统(1)下载好安装包并解压,就可以得到如下图的文件:(2)用管理员身份运行“主程序”,让主程序......
  • arcgis pro3.0-3.0.1-3.0.2安装教程大全及安装包下载
    一.产品介绍:ArcGISPro这一功能强大的单桌面GIS应用程序是一款功能丰富的软件,采用ArcGISPro用户社区提供的增强功能和创意进行开发。ArcGISPro支持2D、3D和4D模式下的数据可视化、高级分析和权威数据维护。支持通过WebGIS在一系列ArcGIS产品(例如ArcGISOnli......
  • 最新版Office2024安装教程
    一.介绍:Office版本都是每三年发布一个版本,从Office2007、2010、2013、2016、2019,2021到现在的2024。二.下载:资源下载三.安装教程:1.用到的软件是开源的脚本,有两个:YAOCTRU和YAOCTRI,其中YAOCTRU用来下载Office,YAOCTRI用来安装Office。解压YAOCTRU后,运行YAOCTRU_Generator.cm......
  • Arcgis Pro 3.0-3.0.1中文教程大全及图文安装教程
    ArcgisPro3.0-3.0.1中文教程大全及图文安装教程产品介绍:你们中的许多人已经从ArcMap迈向了其继任者ArcGISPro,并且已经能够体验到众多优势。完成此步骤后,您还会注意到,自2015年推出ArcGISPro以来,Esri一直在努力更好地定制此桌面应用程序以满足其用户的需求和要求。......