Tag: 64bit

sharepoint 64bit上的32位二进制文​​件,尝试加载格式不正确的程序

我有很多sharepoint web部件等,所有这些都是针对任何cpu编译的,它们在32位共享点上运行良好但是在64位中移动到服务器2008会导致以下错误: 尝试加载格式不正确的程序。 (HRESULTexception:0x8007000B) 从我的阅读中他们都应该工作得很好?

阅读Microsoft Access数据库64位

我有一种情况,我将我的.NET应用程序移动到64位,我仍然需要从C#代码中读取Microsoft Access数据库中的数据。 我有一个建议,我可以编写一个Web服务,定期从Microsoft Access读取数据并将其转储到SQL Server,这样我就可以从我的应用程序中的SQL表读取,而不是直接访问Microsoft Access数据库。 这有一些问题,例如从Web服务或WCF服务读取特定PC上的Microsoft Access数据库。 但我想具有相关权限的帐户可以解决此问题。 还有其他人有这种情况吗? 如果是这样,你是如何解决它的? 提前感谢任何指导。

在C#中,如何以编程方式了解操作系统是x64还是x86

在C#中,如何以编程方式了解操作系统是x64还是x86 我在互联网上找到了这种API方法,但它不起作用 [DllImport(“kernel32.dll”)] public static extern bool IsWow64Process(System.IntPtr hProcess, out bool lpSystemInfo); public static bool IsWow64Process1 { get { bool retVal = false; IsWow64Process(System.Diagnostics.Process.GetCurrentProcess().Handle, out retVal); return retVal; } } 提前致谢。

在VS2008中的Windows x64上调试x86 .NET应用程序

我使用x64版本的Windows 7.我的应用程序使用一些无法在x64上下文中加载的COM服务器(通常是本机x86 COM服务器)。 所以我决定使用WOW将其作为x86应用程序运行,因此我将平台目标设置为x86。 但是当我尝试调试它时,Visual Studio 2008调试器开始显示所有源文件的“源文件不同……”之类的消息。 这种行为的原因是什么? 这个问题诞生于那里“源文件不同……”消息在Visual Studio 2008中是在x64 Windows上调试x32应用程序的结果 更新 :我清理解决方案,重建解决方案,删除obj,bin等文件夹,重新启动计算机,重新安装Visual Studio …那么,还有什么可能是问题? Update2 :如果您创建新的Windows应用程序项目并将目标平台更改为x86,您将看到此问题。 但如果从项目中删除Settings1.settings,麻烦将被消除! 。 任何的想法? Update3 : http : //social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6

在Visual Studio中调试x64 Azurefunction

我正在通过Visual Studio编写C#Azure函数。 此function通过博客存储触发,并使用x64 C ++ DLL处理blob。 问题是与visual studio一起安装的默认Azurefunction工具只有x86版本的exe函数(func.exe)。 我在这个URL看到,现在有x64版本: https : //github.com/Azure/azure-functions-core-tools/releases 问题是,默认情况下,Visual Studio正在我的机器上选择1.2.0版本的工具(C:\ Users \ acardy \ AppData \ Local \ AzureFunctionsTools \ Releases \ 1.2.0),我没有看到1.2 .0 x64在URL上发布。 有没有办法让Visual Studio选择一个我可以用x64版本修补的不同版本? 我目前正在运行Visual Studio 15.7.1版。 谢谢。

变量在C#Release x64中没有递增

有人可以向我解释为什么当我在x86平台上执行它以及为什么它在x64上失败时这段代码表现良好? 结果: x86调试:12345678910 x64调试:12345678910 x86发布:12345678910 x64发布:1111111111 如果我改变某些东西,比如删除一个未使用的变量,或者如果我在p_lFirstId ++之后删除无用的for循环,那么奇怪的行为就会消失。 我发现在我的发布配置中将“pdb-only”更改为“full”,它再次起作用。 如果你直接从visual studio运行代码,它也做得很好。 这是JIT Compiler的错误吗? 先感谢您。 class Program { static void Main(string[] args) { Test(null, null, null, 0, 1); } public static void Test( List liste, List unused1, string unused2, int unused3, long p_lFirstId) { liste = new List(); StringBuilder sbSql = new StringBuilder(); for (int i […]

我的CRC64校验和编码需要CRC反向代码

有人可以用C#编码CRC64反向算法吗? 我无法编码,无法理解任何事情。 谢谢, 我从C ++复制了CRC64校验和代码并将其转换为C#.NET。 整个代码显示如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CRC64 { public class cCRC64 { public UInt64[] crc64_table = { 0x0000000000000000, 0x42F0E1EBA9EA3693, 0x85E1C3D753D46D26, 0xC711223CFA3E5BB5, 0x493366450E42ECDF, 0x0BC387AEA7A8DA4C, 0xCCD2A5925D9681F9, 0x8E224479F47CB76A, 0x9266CC8A1C85D9BE, 0xD0962D61B56FEF2D, 0x17870F5D4F51B498, 0x5577EEB6E6BB820B, 0xDB55AACF12C73561, 0x99A54B24BB2D03F2, 0x5EB4691841135847, 0x1C4488F3E8F96ED4, 0x663D78FF90E185EF, 0x24CD9914390BB37C, 0xE3DCBB28C335E8C9, 0xA12C5AC36ADFDE5A, 0x2F0E1EBA9EA36930, 0x6DFEFF5137495FA3, 0xAAEFDD6DCD770416, 0xE81F3C86649D3285, 0xF45BB4758C645C51, 0xB6AB559E258E6AC2, 0x71BA77A2DFB03177, 0x334A9649765A07E4, 0xBD68D2308226B08E, […]

RyuJIT – 带有ushort和Equals覆盖的错误(64位)

在将32位托管应用程序移植到64位时,我通过结构中的Equals()覆盖观察到了一种奇怪的行为。 你在github找到了一个repro。 要重现该错误,您应该使用“optimize”标志编译库。 这是Release配置的默认设置。 必须在不进行任何优化的情况下编译消耗的TestApp。 首选必须禁用32位才能启动64位应用程序。 请参阅github上的说明! 该库包含一个实现IEquatable接口的结构,该接口使用简单的代码行实现。 public bool Equals(StructWithValue other) { return value.Equals(other.value); } 此代码调用ushort / UInt16类型的Equals方法。 如果使用建议的配置构建解决方案,则32767以上的所有值都将失败。 你在ushort值为32768时调用Equal,而’other’的值也是32768.但是对于32767以上的所有值,Equals()将返回false。 如果您更改方法以使用’==’运算符,代码将起作用。 此外,如果您将类型从struct更改为class,则代码将按预期运行。 public bool Equals(StructWithValue other) { return value == othervalue; } 我认为这是RyuJIT-Compiler中的一个错误。 如果我使用传统的JIT编译器,代码工作正常。 在不同的Windows版本上使用Visual Studio 2015和TargetFramework 4.6.2进行测试。

在64位计算机上使用Redemption dll(Outlook)

我有一个我在我的32位机器上安装的exe,它通过登录用户Inbox循环并且工作正常,(NB我还没有让它为另一个用户工作( 见这里 )任何想法也会受到赞赏!) 。 但是当我在64位服务器上安装它时,我收到此错误: Creating an instance of the COM component with CLSID {29AB7A12-B531-450E-8F7A-EA94C2F3C05F} from the IClassFactory failed due to the following error: 80004005. 我在服务器上注册了Redemption dll( 见这里 )。 我已经完成了这个运行-c-app-32位的64位机器 NB。 类id似乎是Redemption.RDOSession ( 见这里 )

从C ++托管的dll抛出的C#exception – EEFileLoadException * __ptr64

我从正常的C#控制台程序中得到此错误,该程序正在使用作为C ++ CLI项目的构建输出生成的DLL。 我有一个简单的DumbThing public ref class与静态方法。 我想简单地调用该函数或至少实例化一个微小的DumbThing对象,并看到C#可以调用它从C ++ CLI生成的DLL中获取的代码,但是它没有工作,因为它抛出的错误让我更加困惑: First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228.. 更新:在原始exception之下,还有另一个第一次机会exception: First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff. 一位同事向我指出,这可能是一个编译时问题(一些选项),但我没有任何可能导致它的线索。 有谁可以提供一些起点提示?