- 浏览: 111091 次
- 来自: ...
文章分类
最新评论
十几行代码,就使一个重要的旧系统组件,完全融入了基于.Net的新系统中!事情是这样的:
-
C语言写的一个标准的 Win32 DLL,完成了一个算法相当复杂的功能,在旧有系统中稳定而高效的运行,但是已没有源代码
-
我们的新系统需要完全相同的功能组件,但新系统基于.Net,用C#开发
幸好有C++/CLI,只用了两个小时开发调试,十几行代码就搞定!主要工作就是重新用C++/CLI的语法声明 DLL 中的函数,或曰所谓托管非托管混合编程,例如:
原来的 DLL 函数声明为:_declspec(dllimport) bool QueryInit(const char* lpszDataFilePath = NULL);
用C++/CLI重新声明如下:
[DllImport("Query.dll", EntryPoint="QueryInit")]
extern "C" bool QueryInit([MarshalAs(UnmanagedType::LPStr)] String^ lpszDataFilePath);
然后就可以直接调用:bool ok = QueryInit("d:/data/");包装一下编译为CLI的DLL就可以给C#用
不需要 Web Service 等“重型”的包装技术,C++/CLI提供了在特定情形下最直接简便的选择;当然这种集成技术主要面向功能的集成,对面向数据,面向服务的集成而言没有必要,因为在那些情形下有多种方案可供选择
由于并非专业的 .Net 开发者,或许有更直接的方法可以在 C# 中调用标准 Win32 DLL,恳请各位看官赐教
[今天又看了一下,,发现C#也可以:
using System.Runtime.InteropServices; public class Win32 { [DllImport("user32.dll", CharSet=CharSet.Auto)] public static extern int MessageBox(int hWnd, String text, String caption, uint type); } public class HelloWorld { public static void Main() { Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0); } }
]
发表评论
-
The Object Primer
2004-12-11 11:21 5501,书名 被翻译成“ ... -
错误处理规范
2004-12-11 16:47 725错误处理规范 〇、概念澄清 概念 解释 错误 ... -
Java,误解为何如此之深
2005-08-24 13:50 559前几天被电话面试,问J ... -
Java:画蛇添足的编码规范
2005-09-02 13:13 540前几天公司培训编码规范: 第n条: ... -
synchronized : 规则, 推论与实践
2007-07-23 22:32 42714.3.Synchronization. Rule ... -
交互设计: 股市帮凶
2008-05-04 21:30 609同事 Y 在线操作股票时, 把"买入"点成 ... -
交互设计: 火车上的厕所
2008-05-26 17:17 572有人在动车组的厕所前等了很久, 直到乘务员路过说厕所是被锁住了 ... -
设计原则与模式: 案例介绍--CppUnit
2008-06-01 20:15 570设计原则与模式: 案例介绍--CppUnit CppUnit ... -
工作流:形参,实参,相关数据
2004-12-11 11:40 623关于形参,实参,相关数据 一、形参(FormalParame ... -
工作流:第一次发版,过程总结
2004-12-11 11:42 667交流 即时讨论:小组成员咫尺之遥,有问题立即提出并解决 ... -
工作流:第一次发版,设计总结
2004-12-11 11:43 578整体 面向接口:消息系统,持久系统等,其实现都是可替换 ... -
Beyond Workflow : An Introduction to Vitria BusinessWare
2005-09-26 10:13 778一、简介 Busines ... -
Vitria BusinessWare: 存储与访问安全
2006-03-26 15:45 709事实上,BusinessWare使用LDAP做为存储机制和 ... -
Vitria BusinessWare: 平台与软件总线
2006-04-01 12:59 779经过一段时间的使用 ... -
Vitria BusinessWare: Web Services
2006-04-01 14:30 705BusinessWare的Web Services ... -
Web Services:自洽,编码,交换模型
2006-04-01 16:02 6151, 自洽 以前曾经写过: 目前WebServi ... -
Web Services:WSDL 1.1 规范中的几个错误
2006-04-01 16:40 680读完了WSDL 1.1的规范,令人惊讶的是发现似乎例子中有几个 ... -
AJP/JK:异构Web平台的集成技术
2006-05-25 21:44 666Tomcat Connector 可以将Tomcat ... -
Vitria BusinessWare: 事件与端口
2006-05-27 17:24 590Event BusinessWare是一个事件驱动的系统 ... -
WS-Security Interoperability Issues: WebSphere, JBoss, Axis and .Net
2006-08-31 22:46 795检验了一下WS-Security的互操作情况,涉及到 ...
相关推荐
Foundations of C++/CLI: The Visual C++ Language for .NET 3.5 introduces C++/CLI, Microsoft’s extensions to the C++ syntax that allow you to target the common language runtime, the key to the heart of...
C++/CLI教程C++/CLI教程C++/CLI教程C++/CLI教程C++/CLI教程C++/CLI教程
In a very similar way, C++/CLI is layered on top of C++. C++/CLI provides a high degree of source code compatibility with C++. As a consequence, the following code is valid if you build the program ...
"C++/CLI Primer: For .NET Development" English | ISBN: 1484223667 | 2016 | 83 pages | PDF | 8 MB Enter a world of hardcore back-end, server-side enterprise programming on the .NET platform. This ...
Instead, youll learn how to write .NET applications using C++/CLI. <br>This book is based on its highly successful predecessor, and bridges the gap between classic C++ and C++/CLI. Furthermore, ...
C++/CLI入门实例 C++/CLI封装并被C#调用
In a very similar way, C++/CLI is layered on top of C++. C++/CLI provides a high degree of source code compatibility with C++. As a consequence, the following code is valid if you build the program ...
什么是 C++/CLI 个人感觉将其看作是位于静态程序设计和动态程序设计之间的一座桥梁。C++ 既C++ 编程语言编程语言; CLI 即通用语言基础构造( Common Language Infrastructure ),这是一个支持动态组件编程模型的...
[Microsoft Press] Visual C++/CLI 从入门到精通 (英文版) [Microsoft Press] Microsoft Visual C++/CLI Step by Step (E-Book) ☆ 出版信息:☆ [作者信息] Julian Templeman [出版机构] Microsoft Press ...
Microsoft Visual C++/CLI Step by Step (pdf + ePub) Publisher: Microsoft Press (August 2, 2013) Language: English ISBN-10: 0735675171 ISBN-13: 978-0735675179 Your hands-on guide to Visual C++/CLI ...
ebook of expert C++/CLI
Visual C++/CLI从入门到精通 扫描版
文件太大,共分为两部分,记得两个资源一起下下来再解压。现在CSDN最低分值为1...使用C++/CLI编写OSG的初步入门例子。可以编译成dll文件然后在C#中调用,从而使用C#在OSG上进行开发。也可以直接使用C++/CLI进行开发。
C++/CLI in Action source code
Visual C++ 2008 用 C++/CLI 开发 ASP.NET Web Application 和 Web Service 的模板,可安装!有安装说明。
qt采用C++/CLI 方式调用C#dll的Demo. 网上c#调c++的一大堆,但是反过来的却寥寥无几。有的也很简单,实际应用中,不仅需要导出类,还需要传递函数指针作为回调 /note:主函数模拟QT主程序. // 因为QT不能在CLR中运行...
英文原版的c++/cli 语言规范,如果喜欢看英文资料的朋友不妨下载了看看,省去一些翻译的不贴切的地方
"C++/CLI: The Visual C++ Language for .NET introduces Microsoft's extensions to the C++ syntax that allow you to target the common language runtime the key to the heart of the .NET 3.0 platform....
这是一本c++/cli语言的书,对初学者非常有用,非常清楚,使英文版的
自己辛苦搜集的网上关于c++/cli编程资料(word,60页,中文)版权规原作者哈,想了解c++/cli编程的绝好材料