Feed
Contact
XING
LinkedIn
Twitter
ICQ
meebo.com

C# – 64Bit oder 32Bit OS?

by Roland Schumacher alias GENiALi 23. September 2009 -- 174 Wörter  -- 456 mal gelesen
Dieser Beitrag ist mir was wert:  

Wenn das bestimmt werden soll wird es schwierig. Ich musste einem Problem nachgehen das auftaucht wenn man mit der VSTO unter Excel in einem 64Bit OS arbeitet. Gewisse Operationen verursachen folgende Fehlermeldung:

Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

Abhilfe schafft der Artikel KB320369. Der Fehler wird offensichtlich auf einen Fehler in der VSTO zurück geführt.

Ich wollte den Hack aber nicht auch unter 32Bit OS anwenden. Aber dafür muss ich irgend wie bestimmen ob der Code unter einem 64Bit oder 32Bit OS ausgeführt wird. Das .NET Framework scheint da keine Methode anzubieten um das einfach zu lösen. Im Internet sind  einige kuriose Lösungen für das Problem zu finden.

Ich habe jetzt folgende umgesetzt die unter Vista 64Bit und Windows 7 32Bit funktioniert.

//Nicht vergessen
using System.Runtime.InteropServices;


[DllImport("kernel32.dll")]
private static extern uint GetSystemWow64Directory(StringBuilder lpBuffer, uint uSize);
internal static byte GetOSBitness()
{
    StringBuilder lpBuffer = new StringBuilder(260);
    uint uSize = GetSystemWow64Directory(lpBuffer, 260);
    if (uSize > 0) return 1; //64-bit
    return 0; //32-bit
}

Gefunden –> HOWTO: Detect Process Bitness

Diese Lösung funktioniert aber nur ab Windows XP (MSDN).

kick it on dotnet-kicks.de

Tags: , , , ,

Entwicklung

Comments (2) -

thmas woelfer
thmas woelfer Germany
9/23/2009 5:14:35 PM #

using System;

namespace PostBuildTool.Infrastructure
{
  internal static class PlatformInfo
  {
    internal static bool RunningAsX64 { get { return (IntPtr.Size == 8); } }
  }
}

Reply

GENiALi
GENiALi Switzerland
9/23/2009 7:40:13 PM #

Danke. Habs irgend wo gelesen aber keine Umsetzung gefunden.

Reply

Pingbacks and trackbacks (1)+

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading


Übersetzen

Diverses

Seitwert

Locations of visitors to this page

Rating
loading

Statistik