work hard work smart

专注于Java后端开发。 不断总结,举一反三。
随笔 - 1158, 文章 - 0, 评论 - 153, 阅读 - 186万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  .NET互操作性

摘要:本文通过例子,讲述了C++调用C#的DLL程序的方法。作者亲身体会,并作出了以下总结,下面就让我们一起来学习吧。AD:把C#编译成DLL或者Axtive控件,再由C调用!比如使用C++调用C#的DLL。SwfDotNet是.net下输出flash的类库。SwfDotNet是C#编写的,作者的C#水平,真是令我佩服。这是个特别好的读写Swf文件的库。但是,我要用在C++项目中,怎么让C++调用C#的DLL呢。今天一上午都在琢磨这个问题,耽误了很多时间,原因是编译是出现:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据 阅读全文

posted @ 2013-01-03 20:44 work hard work smart 阅读(597) 评论(0) 推荐(0) 编辑

摘要:g10589119在【windows8开发】深入浅出C++/CX一文中提出了一下这个问题,特以此文进行回复,大家如果有不同意见和想法可以留言分享下。g10589119的问题如下:----------------------------------------------------------------------------------------------Fromg10589119楼主你好,最近遇到一个问题,就是在metro的开发中,想用c#调用C++ /CX写的DLL,[cpp]view plaincopypublicrefclasstest_classsealed{public:v 阅读全文

posted @ 2013-01-03 20:17 work hard work smart 阅读(520) 评论(0) 推荐(0) 编辑

摘要:一、前言 1、本回讲解的是在VS 2008 下的使用ATL. 并使用Win 32 Console Application进行测试以及C#项目进行测试(调用COM). 2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFunTest,它有一个简单的函数: Sum()完成两个数值的加法 3、ATL的介绍 ATL本来被设计成一种书写快捷的小的COM组件。 ATL特性:(1)C++能完成的所有功能。(2)没有外部程序库,除非你想要使用它。(3) 一种抽象对象和接口的相对高级的方式。 (4)类集合的自动处理,目标创建,参考... 阅读全文

posted @ 2011-11-18 15:44 work hard work smart 阅读(6162) 评论(2) 推荐(2) 编辑

摘要:地址:http://blog.163.com/mad010@126/blog/static/12237155200841645952814/[文章导读]C#中不仅支持.Net 平台,而且支持COM平台。为了支持 COM和.Net,C# 包含一种称为属性的独特语言特性第六节、接口转换 C#中不仅支持.Net 平台,而且支持COM平台。为了支持 COM和.Net,C# 包含一种称为属性的独特语言特性。一个属性实际上就是一个 C# 类,它通过修饰源代码来提供元信息。属性使 C# 能够支持特定的技术,如 COM 和 .Net,而不会干扰语言规范本身。C# 提供将COM接口转换为 C#接口的属性类。另. 阅读全文

posted @ 2011-10-11 17:16 work hard work smart 阅读(472) 评论(0) 推荐(1) 编辑

摘要:一、用StructLayout特性限定声明结构或类 公共语言运行库利用StructLayoutAttribute控制类或结构的数据字段在托 管内存中的物理布局,即类或结构需要按某种方式排列。如果要将类传递给需要指定布局的非托管代码,则显式控制类布局是重要的。它的构造函数中用LayoutKind值初始化 StructLayoutAttribute 类的新实例。 LayoutKind.Sequential 用于强制将成 员按其出现的顺序进行顺序布局。 LayoutKind.Explicit 用于控制每个数据成员的精确位置。利用 Explicit, 每个成员必须使用 FieldOffsetAtt.. 阅读全文

posted @ 2011-10-08 15:43 work hard work smart 阅读(7168) 评论(0) 推荐(1) 编辑

摘要:一、在.Net中使用COM组件分以下三步走:1、首先创建COM组件,这里只做简单介绍(1)创建ATL项目。(2)添加ATL对象类。(3)为ATL对象类添加方法。可以采用在接口中添加方法,也可手动添加代码。这样一个简单的COM组件创建完毕。2、为COM生成互操作程序集采用TlbImp.exe类型库导入程序。F:\...\Debug>tlbimp samplecomsimpletest.tlb /out:SampleCOMSimpleTest.Interop.dll /namespace:SampleCOMSimpleTest.Interop其中samplecomsimpletest.tlb 阅读全文

posted @ 2011-09-24 18:57 work hard work smart 阅读(5878) 评论(0) 推荐(2) 编辑

摘要:1、使用微软的C运行库msvcrt.dll提供的方法和Win32 API提供的函数进行平台调用代码如下: class Program { //微软的C运行库msvcrt.dll提供的puts方法 [DllImport("msvcrt.dll")] static extern int puts(string msg); [DllImport("msvcrt.dll")] static extern int _flushall(); //Win32 API提供的函数进行平台调用 [DllI... 阅读全文

posted @ 2011-09-24 13:50 work hard work smart 阅读(502) 评论(0) 推荐(0) 编辑

摘要:C++创建的是Win32 DLL程序,代码如下:#include "stdafx.h"#include "CustomerInfo.h"#include <stdio.h>#include <malloc.h>typedef struct{ char name[32]; int age;}Customer;CustomerInfo* customerInfo;extern "C" __declspec(dllexport) Customer* Create(char* name, int age){ Custo 阅读全文

posted @ 2011-09-24 12:24 work hard work smart 阅读(528) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示