windows xp 中的 js-ctypes 和 c# 非托管 dll
js-ctypes and c# unmanaged dll in windows xp
我有一个非托管的 c# dll(使用 Giesecke Dllexport)。当我在 Windows 7,8 64/32 位中使用 js-ctypes 打开这个 dll 时它可以工作,但是如果我在 Windows XP 上尝试它我得到错误:"couldn't open library".
我使用 .Net Framework 2.0 制作了这个 dll。
using RGiesecke.DllExport;
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace MinhaDll
{
public class Dll
{
[DllExport("getA", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static string getA()
{
return "a";
}
[DllExport("getB", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static string getB()
{
return "b";
}
}
}
就像这个问题,但对我没有帮助:
Unmanaged DLL Export with Robert Giesecke Library Not Working Under Windows XP
解决了!
我使用 RGiesecke 的 DLLExporter 和 .NET Framework 2.0 在 C# 中从头开始创建了一个新的 DLL x86,现在它可以工作了。
我有一个非托管的 c# dll(使用 Giesecke Dllexport)。当我在 Windows 7,8 64/32 位中使用 js-ctypes 打开这个 dll 时它可以工作,但是如果我在 Windows XP 上尝试它我得到错误:"couldn't open library".
我使用 .Net Framework 2.0 制作了这个 dll。
using RGiesecke.DllExport;
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace MinhaDll
{
public class Dll
{
[DllExport("getA", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static string getA()
{
return "a";
}
[DllExport("getB", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public static string getB()
{
return "b";
}
}
}
就像这个问题,但对我没有帮助:
Unmanaged DLL Export with Robert Giesecke Library Not Working Under Windows XP
解决了!
我使用 RGiesecke 的 DLLExporter 和 .NET Framework 2.0 在 C# 中从头开始创建了一个新的 DLL x86,现在它可以工作了。