精华内容
下载资源
问答
  • MFC调用WPF函数

    万次阅读 2015-08-06 15:32:40
    很多情况下WPF调用MFC中的函数,但是也许会有特俗的情况,即MFC调用WPF中的函数

    1建立WPF工程
    建立一个WPF工程,命名为WPFforMFC;
    修改MainWindow.xaml代码:

    <Window x:Class="WPFforMFC.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Window.Background>
        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
            <GradientStop Color="Yellow" Offset="0.0"/>
            <GradientStop Color="Red" Offset="0.25"/>
            <GradientStop Color="Blue" Offset="0.75"/>
            <GradientStop Color="LightBlue" Offset="1.0"/>
        </LinearGradientBrush>
    </Window.Background>
    <TextBlock Text="Hello WPF!" HorizontalAlignment="Center" VerticalAlignment="Center"
    FontSize="21" Width="116" />
    </Window>

    2建立MFC工程
    建立一个基于对话框的MFC工程,名为CallWPF;

    在CallWPF上右键-》属性-》配置属性-》常规,将“公共语言运行时”该为“公共语言运行时支持(/clr)”;

    在CallWPF上右键-》属性-》通用属性-》框架和引用,点击添加新引用,选择“项目”下的“WPFforMFC”,并确定;

    在CallWPF上右键-》属性-》通用属性-》框架和引用,点击添加新引用,选择“.NET”下的“PresentationCore”、“PresentationFramework”、“WindowBase”(不能同时选择,一次只能添加一个),并点击确定;

    3调用
    在MFC项目的头文件文件夹中加入一个.h文件,命名为host.h。
    在host.h中加入代码:

    using namespace System::Windows;
    ref class WPFHost
    {
        public:
        static WPFforMFC::MainWindow^ WPFWindow;
        //WPFforMFC需要跟你的WPF工程名字一致,下同
    };
    void ShowWPFWindow()
    {
        WPFHost:: WPFWindow= gcnew WPFforMFC::MainWindow();
        WPFHost:: WPFWindow->ShowDialog();
    }

    在CallWPFDlg.cpp中引入头文件“host.h”;
    在Dialog的“确定”按钮的Click函数中加入代码:

    ShowWPFWindow();

    4说明
    ref : 创建一个对于在托管堆中对象的应用(reference class)
    “^”: 追加到引用类型的声明中
    C++/CLI中使用gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换* ,就语义上来说他们的区别大致如下:
      1. gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址.
      2. gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.
    微软官方解释:
    gcnew creates an instance of a managed type (reference or value type) on the garbage collected heap. The result of the evaluation of a gcnew expression is a handle (^) to the type being created.
    gcnew 创建了一个实例在GC堆上,导致的结果就是一个句柄类型已经被创建。
    5运行结果
    这里写图片描述
    这里写图片描述

    展开全文
  • 一、c++动态库的静态调用方法: 必须有库文件,动态库,头文件(.lib和.dll以及.h)三个文件才能调用调用步骤如下: ...1.3在当前工程的主对话框头文件,加入如下程序: #pragma comment(lib,"snap

    一、c++动态库的静态调用方法:

    必须有库文件,动态库,头文件(.lib和.dll以及.h)三个文件才能调用。

    调用步骤如下:

    1.1先将相关的库文件和动态库(.lib和.dll)放入当前工程的可执行文件夹.exe目录下(一般是dubug目录下)

    1.2将对应的头文件加入当前工程 

    1.3在当前工程的主对话框头文件,加入如下程序:

    #pragma comment(lib,"snap7.lib"//预编译库文件,将snap7库文件加入工程,要先将snap7.dll加入工程中

     

    具体的图文操作,可以参考我的另一篇文章:

    标题:静态调用的dll的一个实例

    网址:

    http://blog.csdn.net/naibozhuan3744/article/details/78557761

    展开全文
  • Windows程序调用函数可分为2部分:C Runtimes + Windows API。 C Runtimes:  LIBC.LIB -- C Runtime函数库的静态链接版本  MSVSRT.LIB--C Runtime库的动态链接版本(如果要链接这一函数,你的程序执行时必须...

    Windows程序调用的函数可分为2部分:C Runtimes + Windows API

    C Runtimes

      LIBC.LIB -- C Runtime函数库的静态链接版本

      MSVSRT.LIB--C Runtime库的动态链接版本(如果要链接这一函数,你的程序执行时必须有MSVCRT40.DLL在场)

    Windows API

      由操作系统本身提供,主要是Windows三大模块:GDI32.DLL USER32.DLL KERNEL32.DLL

    所有Windows程序都必须载入WINDOWS.H,不过,它只照顾三大模块所提供的API。

    展开全文
  • 解决汉诺塔问题, 用递归法将一个整数n转换成字符串。例如,如入483,应输出字符串“483”。...编写、调试并运行一个MFC应用程序,该MFC应用程序调用了你所建立的动态链接库中的加法函数、减法函数
  • 1、定义对话框类对象全局变量指针 CDialog *g_pDlg,同时在初始化对话框时用this指针初始化此全局变量。...在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数函数中,添加 #include "A.h"...

    1、定义对话框类对象全局变量指针 CDialog *g_pDlg,同时在初始化对话框时用this指针初始化此全局变量。

    2、在非类成员函数中可以使用g_pDlg->成员函数名或变量名进行调用访问。

     

    假如有类A,类B两个类。如果想在B中调用A的成员函数,该怎么办呢?
    方法一:
    在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数的函数中,添加
    #include "A.h"
    B::funcB()
    {
    A a;
    a.funcA();
    }
    由于类A的funcA不是静态(static)函数,所以在B中不能这样调用
    #include "A.h"
    B::funcB()
    {
    A::funcA();
    }




    会提示“illegal call of non-static member function”的错误。
    方法二:
    方法一是用的创建A的对象,然后由对象调用函数的方法。方法二是直接把类A的函数设置成静态函数,这样就不需要创建A类,而直接调用函数。方法是
    在类A中把该函数加上static修饰,之后在B类的函数中
    #include "A.h"
    B::funcB()
    {
    A::funcA();
    }
    这样就可以直接调用函数了。
    方法三:
    用全局指针的方法。

    在类B的cpp文件中包含A类,然后在所有类外部声明A* pA;之后就可以在类B的函数中直接用pA->funcA();除此之外,其他类,比如说,类C想调用类A的函数,只需要在类C的cpp文件的外部声明 extern A* pA;然后类C的成员函数也可以直接调用类A的函数了。

    方法四:

    看起来比较奇怪的一个设置全局变量的方法。比如说,想把B类设置成全局变量,可以在B类外声明一个全局变量g_pB,然后在构造完B类后,在B类的构造函数中令g_pB = this。这样全局就可以引用这个B类了。

    展开全文
  • 【VS开发】MFC调用C函数模块的解决方案标签(空格分隔): 【VS开发】声明:引用请注明出处http://blog.csdn.net/lg1259156776/说明:最近调试基于MFC程序,当通过外部C文件引入某个function的时候,又一次忘记...
  • MFC应用程序添加析构函数

    千次阅读 2015-04-23 17:17:04
    MFC编写的智能设备应用程序,有些自己创建的GDI资源需要释放,以免造成内存泄露。这样有些代码想放到主对话框的析构函数中。这时会发现找不到主对话框的析构函数,只能看到构造函数。  这就需要自己来为主对话框...
  • MFC,线程调用函数

    2018-06-20 14:34:52
    .h头文件声明 自定义函数:void Denmic(long a long b); .cpp文件的按钮响应消息里面,创建了一个线程AfxBeginThread(timef,this); 也给出了线程函数 UINT timef (LPVOID aParm) { return 0; } 问题...
  • 关于MFC程序的几个头文件.

    千次阅读 2008-07-21 10:29:00
    MFC程序常见的几个头文件的作用解释如下:1. precompiled file, STDAFX.CPP,STDAFX.H 这两个文件用于建立一个预编译的头文件.PCH和一个预定义的类型文件STDAFX.OBJ。由于MFC体系结构非常大,包含许多头文件,如果...
  • 1、得用友元类,1的头文件中include2的头文件,然后在1头文件中找到类定义的地方,在public下加friend xx2class; 这样定义的2的对象就可以使用2的成员函数和变量了 那2的对象在哪里定义呢,窗口类的对象怎么...
  • js调用纯c++函数 纯c++调用js函数 纯c++嵌入网页
  • MFC资源学习和函数调用方式

    千次阅读 2012-04-18 14:33:21
    资源是被链入运用程序当中的,但有时看不见资源,只有一个exe文件,这是因为资源已经被链入可执行文件中去了,也就是说,资源被编译为二进制文件,像源文件一样被链接为可执行文件.有时候是编译到DLL中了.  资源是被...
  • MFC程序调用MFC扩展DLL

    千次阅读 2016-11-15 10:25:35
    MFC创建dll有三种方式: 1、Regular DLL with MFC statically linked:常规静态链接库 2、Regular DLL using shared MFC DLL :常规动态链接库 3、MFC Extension DLL (using shared MFC DLL):扩展的MFC DLL。 ...
  • MATLAB与C++/MFC混合编程;调用MATLAB函数因为项目需要,前期工作一直在VS2013(编译平台Win32)与MATLAB2014a(64bit)两个平台进行,...但是发现C++处理数据远没有MATLAB方便,便开始百度“C++/MFC调用MATLAB函数”,惊
  • 1.首先创建一个MFC单文档应用程序。 2.添加4个MFC类TopLView、BottomLView、TopRView、BottomRView,基类为CView。 3.添加一个MFC类CControlForm,基类为CFormView,对话框ID默认。 4.创建一个切分类,如...
  • MFC应用程序添加析构函数

    千次阅读 2010-01-29 14:05:00
    MFC编写的智能设备应用程序,有些自己创建的GDI资源需要释放,以免造成内存泄露。这样有些代码想放到主对话框的析构函数中。这时会发现找不到主对话框的析构函数,只能看到构造函数。 这就需要自己来为主对话框添加...
  • 1、工程名为Zero,在CZeroDlg.cpp中加入头文件 #include “conio.h” ; 2、在CZeroDlg::OnInitDialog() {…}函数中加入AllocConsole(); 3、调用 cprintf() (VS2005后应该用 _cprintf 代替)输出信息,用法同 ...
  • MFC 调用 DLL

    2008-12-08 12:03:00
    头文件中包括库的头文件,把库的头文件和lib文件拷贝到工程目录下;如 #include "VinkSys.h"#pragma comment(lib, "./VinkSys.lib") 之后就可以调用库的函数了。
  • 怎样在view类里面调用其他自定义类里面的函数? 我这样做程序报错: 1在view的头文件里面包含所要调用的类include(port,h) 2在view的头文件里添加cport * mp; 3在view的cpp文件里调用mp->portaa(), portaa为自定义类...
  • MFC程序中的WinMain函数

    千次阅读 2010-11-16 19:53:00
    读者还记得我们在第2章中讲述的创建Win32应用程序...  但在编写MFC程序时,我们找不到这样一条主线,甚至在程序中找不到WinMain函数。可以在当前Test工程中查找WinMain函数,方法是在VC++开发环境中单击
  • MFC应用程序调用顺序分析

    千次阅读 2014-02-19 10:53:46
    了解一个程序调用关系和调用顺序,对一个编程人员来说是有必要的。下面将会以《Visual Studio 2010——第一个Visual C++.NET程序》为例子进行分析。
  • 注意:若Matlab代码中需要调用Matlab库函数,则需要在C++调用Matlab代码前加一个初始化函数:MyFunInitialize(),该函数为XXXInitialize()其中XXX与生成的XXX.h、XXX.lib、XXX.dll同名。 (1)编译B.m文件 1)第一...
  • 问题描述:MFC程序中tab控价下有三个子页面Page1、Page2、Page3,Page2上有Text控件IDC_EDIT1和成员函数Fun1,现在Page3中想获取Page2上Text控件中输入的值,和调用Page2的成员函数Fun1 方法: Page3中包含头文件...
  • MFC调用QT库

    千次阅读 2019-08-08 17:11:14
    其中:QWidget *parent是继承Qt界面父控件的对象,void *pMfc是mfc程序函数指针,m_pCallback是回调函数的指针,m_canDrag是bool类型的状态变量 编译通过完成之后, 需要在这里面配置mfc编译好的EXE文件,放...
  • 经过测试,在所制作的带界面的动态库在windows系统中的控制台程序MFC程序都能顺利调用。 动态库制作 1、建立MFC的动态库 2、添加资源Dialog 右键dll项目,添加->资源->Dialog,在窗体上右键添加类,命名类名...
  • 我有一个子对话框,头文件中声明了变量a。 例如a是一个队列。 使用a的过程中,会不断动态申请新空间。 队列a是有析构函数的。 如果是局部变量,局部函数运行完后,队列可以自动调用析构函数。 但上述例子,关闭...
  • MFC怎样调用另一个类的函数

    千次阅读 2014-02-10 13:44:07
    在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数函数中,添加 #include "A.h"B::funcB(){ A a; a.funcA();} 由于类A的funcA不是静态(static)函数,所以在B中不能这样调用 #include "A.h" B::...
  • 本文中的子对话框为PicDialog,父对话框为maindlgDlg 实现父对话框中点击Button1...在子对话框头文件添加父对话框指针: public: CDialog *m_pMianDlg; void set_dlg(CDialog * parnet_dlg); 二.在子对话框cpp文
  • 1.调用模态的对话框 void ADlg:: Button() ...在 Adlg.h 包含 Bdlg.h头文件 中定义 BDlg* m_pdblg; 在Adlg.cpp中 在构造函数中初始化 m_pdblg = NULL; 在析构函数中 if(m_pdblg != NULL) {
  • MFC中回调函数的使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,694
精华内容 12,277
关键字:

mfc调用程序头文件函数功能