gpt4 book ai didi

c# - 如何从 [C# WP8.1 WRT/SL] 项目中调用 [Unmanaged C++ DLL func]

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:53 24 4
gpt4 key购买 nike

这不是“如何从 C# 调用 C++ 函数”的拷贝

我知道如何为常规 PC 应用程序执行此操作,我尝试过并且有效:

这叫做P/Invoke

1.
Create a C++ dll project,
but you can't add the C++ dll project as a reference to the C# project.
Copy the dll from C++, and paste the dll to the C# exe folder

2.
in C# use [DllImport...]
in C++ use extern "C" __declspec(dllexport) ...

但是当我在 WindowsPhone 上执行此操作时,失败了。

Windows Phone 有两种类型的非托管 C++ 原生 dll 项目,我都试过了

DLL (Windows Phone) <- WRT DLL 8.1
DLL (Windows Phone Silverlight 8.1)

我不知道该把dll文件放在哪里。因为finally exe是一个包。我无法将 dll 与包放在同一文件夹中。dll 应该在包中,作为包的一部分。

所以我尝试将dll作为资源文件添加到C# WP8.1 SL项目中。

但是函数调用失败。

所以我想知道的是,如何放置dll,如何将dll与WP8.1 SL项目 Hook ?

有人试过吗?

谢谢大家的回答。

//-------------------------------------------- --------------

所以正确的做法是对于 [C# WP8.1 SL] 项目,我需要

create a [C++ Runtime Component DLL] <- as bridge
create a [C++ Native WP SL DLL] <- real dll

Add the [C++ Runtime Component DLL] as a reference to [C# WP8.1 SL]
And the [C++ Native WP SL DLL] as a reference to [C++ Runtime Component DLL]

最佳答案

无法在托管 Windows Phone 项目中引用非托管程序集。在您的解决方案中创建 Windows 运行时组件,它充当 dll 的包装器。您可以将其他非托管 dll 链接到运行时组件。

请阅读以下链接了解更多详情:

Creating Windows Runtime Components

How to import C++ dll in Windows Phone Project

Consuming a C++ library project from a Windows Phone Store app

Windows Runtime Component Sample-WP8.0

关于c# - 如何从 [C# WP8.1 WRT/SL] 项目中调用 [Unmanaged C++ DLL func],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com