非托管DLL在x86上运行但在x64上不运行

时间:2015-09-17 00:47:20

标签: c# python dll

所以我遇到了这个问题。

dll not loading in python

C#

x= [ 1 2; 3 4]
pth = 'C:\data\tst1.xls'
Ncol = size(x,1)
for i=1:size(x,2)
  xlswrite(pth,x(1,:)',['A1:A' num2str(Ncol)]);
  xlswrite(pth,x(1,:)',['B1:B' num2str(Ncol)]);
end

的Python

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using RGiesecke.DllExport;

class Test
{
    [DllExport("add", CallingConvention = CallingConvention.Cdecl)]
    public static int TestExport(int left, int right)
    {
        return left + right;
    }
}

错误

import ctypes
a = ctypes.cdll.LoadLibrary('ClassLibrary1.dll')
a.add(3, 5)

我通过将构建定位为x86而不是任何CPU提供的答案来解决它。但是,当我的计算机/操作系统是64位时,我不明白为什么它必须是x86。

64位dll

时出错

WindowsError:[错误193]%1不是有效的Win32应用程序

简单地说。当我瞄准x86架构并构建库时,它可以工作。但是,当我瞄准x64架构时。它抛出一个Windows错误

我的操作系统是64位。 Python 2.7.9 64位。

0 个答案:

没有答案