创建项目

创建MFCDLL项目

MFC项目中这么声明

生成dll工程

可以看到库文件的生成目录,保存下来

创建测试用c#项目

我们创建一个按钮调用我们刚才的函数

这边这么调用MFC库的函数入口。这里并不是com控件,所以不能直接从引用里面拉进来。

否则会报  未能添加引用,请确保此文件可访问并且是一个有效的程序集或COM组件。 错误

添加using

调用方式就像类的静态方法

这里看到设置的入口函数和声明的不一样。

所以会报错

我们把入口 entryPoint修改一下。或者删掉。只要保持和库那边设置一致即可

效果如下

现在我们添加MFC的窗口

在声明出使用doModel的原因是退出函数这里会释放资源。如果show会出错

C#方面这样调用

成功显示窗口

在跨语言调用中,有可能会出现消息队列不一致问题。这里测试一下。在不乱设置的情况下。窗口消息响应

我们在MFC中设置一个按钮消息

运行可以正常显示

消息是能正常处理的

C# 调用 MFC DLL的更多相关文章

  1. 2015.3.4 VS2005调用MFC dll时报错及解决

    今天在用VS2005调用MFCdll时报错: 正试图在 os 加载程序锁内执行托管代码.不要尝试在 DllMain 或映像初始化函数内运行托管代码... 原因是我在dll的CSpaceApp::CSp ...

  2. 如何在MFC DLL中向C#类发送消息

    如何在MFC DLL中向C#类发送消息 一. 引言 由于Windows Message才是Windows平台的通用数据流通格式,故在跨语言传输数据时,Message是一个不错的选择,本文档将描述如何在 ...

  3. VS建立可供外部调用的MFC类DLL,C#调用MFC调用

    建立MFC DLL工程.一般选共享MFC库 关键是在你生成的CPP中,添加外部调用的接口 如下,意思是将这个函数对外公开. 如果你希望对外提供类,就把这个方法做成工厂. 如果你希望对外提供MFC的窗体 ...

  4. VC++:创建,调用MFC动态链接库(扩展DLL)

    概述 DLL(Dynamic Linkable Library)动态链接库,Dll可以看作一种仓库,仓库中包含了可以直接使用的变量,函数或类. 仓库的发展史经历了"无库" ---& ...

  5. MFC DLL对话框调用

    Regular Dll using shared MFC DLL extern "C" __declspec(dllexport) void Show() {   AFX_MANA ...

  6. 如何制作带MFC界面的MFC DLL

    最近在做基于组件化MFC界面的开发,需要把界面封装到动态库中. 一:工程创建步骤 1.创建MFC DLL工程,选择 “在共享 DLL 中使用 MFC”. 2.运行时库选择:c/c++-->代码生 ...

  7. Win32 DLL和MFC DLL 中封装对话框

    现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.     ...

  8. c#调用c++ dll(一)

    首先来说说c++中的dll 核心的一些知识 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作.可能存在一些模块的功能较为通用,在构造其它软件系统时 ...

  9. MFC DLL资源动态切换

    在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题. 出现这样的Bug,一时无从下手. 报错位置在核心代码中dlgcore.cpp. [cpp] view plaincopy BOOL AFXA ...

随机推荐

  1. 解决Debian-7.1下Chrome浏览器字体难看的问题

    首先在 Advance Setting 的 font 标签页下做如下配置: 然后在用户目录下创建 .fonts.conf 文件,内容如下: <?xml version='1.0'?> &l ...

  2. IOS tableView 自定义cell 多行时 文字重复现象

    今天写了一个demo,有一个问题,有很多cell,但是超过一页后往下翻,发现文字有重叠现象, cell用的是重用机制,按说不会这样,最终解决的方案: 勾选这个,clears graphics cont ...

  3. vs自带服务测试工具

    在vs安装目录有一个vs自带的服务测试工具,地址为: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Wcf ...

  4. matlab两种不同模式的并行运算

    1.distributed job      distributed job是一种比較简单的并行任务.假定用户须要完毕一组作业.各个计算作业之间是独立的.并且相互之间不须要进行数据通信.这意味着各个作 ...

  5. perl 线程创健

    http://www.cnblogs.com/zhangchaoyang/articles/2057178.html

  6. ODB 短板

    首先是不支持联合主键,而且没有CHECK约束.UNIQUE约束,这是官方都承认的. 虽然提供了延迟加载(lazyload)来改善效率,不过使用起来不方便 查询不灵活,只能在WHERE之后的部分设定查询 ...

  7. input 的 placeholder属性在IE8下的兼容处理

    placeholder是input标签的新属性,在使用的时候有两个问题: 1.IE8 下不兼容 处理思路: 如果浏览器不识别placeholder属性,给input添加类名placeholder,模仿 ...

  8. dependencies与devDependencies的区别

    npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件: –save –save-dev 但它的文档里1,只提到一个小区别,–save会把依赖包名称 ...

  9. JUnit4注解基本介绍

    @After If you allocate external resources in a Before method you need to release them after the test ...

  10. Force removing ActivityRecord,app died, no saved state报错的理解

    为什么说理解呢?出现这个问题,我的情景是,在activity里面直接起了一个Thread,线程里面进行了一个繁重的任务,当线程执行完后,这个activity也销毁了,界面显示的任务栈下面的一个活动.百 ...