windows metro app c#工程调用c++写的静态库

因为要在metro app 的工程中调用别人写好的C++静态库,所以研究了一下,最后的结果是c#是不能直接调用c++的lib文件的。

只能调用dll或者windows runtime component,特此把这个情况记录一下。

1,c++的lib必需要支持windows应用商店

2,创建windows runtime component(windows运行时组件)工程 ,名称为 WindowsRuntimeComponent2

3,把lib和.h文件拷贝到WindowsRuntimeComponent2的目录下

4,点击WindowsRuntimeComponent2工程名 -> 属性 -> 配置属性 -> c/c++ -> 常规 -> 附加包含目录 -> 选到.h所在的目录

5,添加代码

      

Class1.h


#pragma once
#pragma comment(lib,"Lib1.lib") 

namespace WindowsRuntimeComponent2
{
    public ref class Class1 sealed
    {
    public:
        Class1();
		double Class1::Add(double a, double b);
    };
}

Class1.cpp


// Class1.cpp
#include "pch.h"
#include "Class1.h"
#include "Lib1.h"

using namespace WindowsRuntimeComponent2;
using namespace Platform;

Class1::Class1()
{

}
double Class1::Add(double a, double b)
{
	double retVal = 0;
	retVal = sLibAdd(a, b);
	return retVal;
}

6,新建windows metro app工程 App2

7,右键点击 App2 -> 添加现有项 -> 选中 WindowsRuntimeComponent2 

8,右键点击App2-> 添加引用 -> 解决方案 -> 项目 -> 勾上 WindowsRuntimeComponent2

9,编辑MainPage.xaml.cs,添加代码

 WindowsRuntimeComponent2.Class1 component = new WindowsRuntimeComponent2.Class1();
            double r = component.Add(1, 2);

            Debug.WriteLine("result : " + r);


10,编译运行


11,配置lib目录 点击WindowsRuntimeComponent2工程名 -> 属性 ->  配置属性 -> 链接器 -> 输入 -> 附加依赖项 -> lib的目录


参考:

1,演练:创建和使用静态库 (C++)

http://msdn.microsoft.com/zh-cn/library/ms235627.aspx#BKMK_CreateLibProject


2,Win8 Metro C# 调用 C++代码

http://blog.csdn.net/problc/article/details/20084483


3,与众不同 windows phone (48) - 8.0 其它: C# 调用 C++

http://www.cnblogs.com/webabcd/p/3526422.html


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值