gpt4 book ai didi

C# 互操作,找不到库

转载 作者:行者123 更新时间:2023-11-28 06:49:43 25 4
gpt4 key购买 nike

我计划将我的许可系统的核心转移到 C++,但我仍然更喜欢使用 .NET 前端进行设计。无论如何,我刚刚读完互操作功能,并决定对其进行测试。问题是,它对我来说只是花花公子,但对任何其他用户都不起作用。我让两个 friend 在他们的 PC 上测试一个小程序,他们得到“无法加载‘xxx.dll’。找不到指定的模块。”

我让 C# 程序在与程序本身相同的路径中读取库,因此该错误没有任何意义。如前所述,它对我来说工作得很好。

C#代码,

[DllImport("GuardImports.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static extern string Gz_GetSystemKey();

我无法设置动态路径,因为 DDLImport 只接受常量变量。我想尝试类似的东西,

private const string loc = Application.StartupPath + "/xxx.dll";

但这显然行不通,因为字符串不是常量。如果有人感兴趣,可以在这里(http://neetcloud.us/MqMIXc)下载该程序,没什么特别的。该程序仅从库中接收散列字符串,并将其显示在消息框中。

最佳答案

根据评论中的讨论,您的问题似乎可能是您的 C++ DLL 是为调试构建的,并且无法在未安装 Visual Studio 的 PC 上运行。也可能可以,但是微软有各种要求,说一般情况下你做不到。

http://msdn.microsoft.com/en-us/library/aa985618.aspx

关于C# 互操作,找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215213/

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