# 64ビットソフトウェアに関する重要情報

## 64ビットソフトウェア

Altova MissionKitのEnterprise版およびProfessional版、およびAltova AuthenticのEnterprise版に含まれるすべてのアプリケーションについて、バージョン2010リリース2以降、32ビット版と64ビット版の両方をご提供しています。このページでは、64ビットソフトウェアの利点、違い、および依存関係に関する重要な情報を提供しており、お客様がご自身のニーズに最適な32ビット版と64ビット版を選択する際に役立つ情報を提供します。

### なぜ64ビットなのか？

現代のソフトウェア開発やデータ処理環境において、組み込みメモリの制限が問題となっているケースが多くあります。現在のMicrosoft Windowsや過去の32ビット版では、搭載されている物理メモリや仮想メモリの量に関わらず、各プロセスが利用できるメモリ容量は最大2GBに制限されています。これをXML開発の現実世界に当てはめると、複雑さにもよりますが、100MBから200MBを超えるサイズのXMLファイルは、全く開くことができないということを意味します。

64ビットシステムは、同じようなメモリ制限を受けません。64ビットプロセッサは、理論上の最大アドレス指定可能なメモリ容量が非常に大きく、ペタバイト（1ペタバイト＝100万ギガバイト）単位で測定されます。現在、Microsoft Windows 7の64ビット版では、最大192GBのメモリを搭載できます。実際には、64ビットアプリケーションを使用するユーザーが処理できるXMLファイルの最大サイズは、搭載されている物理メモリの容量によってのみ制限されます。 

以下に示されたスクリーンショットは、64ビット版のXMLSpyで開かれている2.7GBのファイルです。このXMLファイルには、Wikipediaの概要に関するXMLデータが含まれており、その行数は3500万行を超えています。

[XMLSpyの64ビット版では、非常に大きなファイルを編集のために開くことができます](https://www.altova.com/images/64_bit_XMLSpy_large_file.png)

(物理メモリが十分でない場合でも、64ビットシステムは仮想メモリを使用することで、非常に大きなファイルを処理できます。ただし、その処理速度は大幅に低下します。)

さらに、100MBより小さいファイルは、大容量の物理メモリを搭載した64ビットシステムによって、より効率的に処理できます。これは、システムがハードディスクのデータをより多くの容量でメモリ上にキャッシュできるためです。

### 64ビットソフトウェアに関するよくある質問集

以下に、32ビット版と64ビット版のソフトウェアに関する、よく寄せられる質問（FAQ）への回答をまとめました。

### 32ビットのアプリケーションは、64ビット版のWindowsで動作しますか？

はい。ただし、Windows 7に対応する最も古いバージョンは、Altovaの2010年版です。ご注意ください。 

### 64ビットのアプリケーションは、32ビット版のWindowsで動作しますか？

いいえ。

### 自分のシステムが32ビット版のWindowsか64ビット版のWindowsを実行しているか、どのように確認できますか？

Windowsのコントロールパネルを開き、「クラシック表示」（Vistaの場合）または「アイコン」（Windows 7の場合）を選択し、次に「システム」アイコンを開きます。「システムの種類」という項目に、「32ビットオペレーティングシステム」または「64ビットオペレーティングシステム」と表示されます

### 私のシステムは64ビット版のWindowsを搭載しています。ソフトウェアアプリケーションは、32ビット版と64ビット版のどちらを使用すべきでしょうか？

それは状況によります。以下に詳しく説明されている追加情報を考慮する必要があります。

### インストール方法

AltovaアプリケーションのEnterpriseエディションおよびProfessionalエディションで使用可能なシリアルキーは、バージョン2010リリース2からサポートされています **両方** 32ビット **そして** 64ビット版に対応しています。この機能は、いくつかの重要な点で柔軟性をもたらします

- **アップグレードパス** – 現在32ビット環境でAltovaソフトウェアをご利用のお客様は、32ビット版のソフトウェアをインストールする必要があります。その後、お客様が64ビット環境に移行した場合、古いシステムから32ビット版をアンインストールし、同じライセンスキーを使用して、新しい64ビット環境に64ビット版をインストールすることができます。
- **複合環境** – マルチユーザーのライセンスキーは、異なる環境でも効果的に機能します。例えば、10ユーザーのライセンスキーであれば、32ビット版を使用するユーザーと64ビット版を使用するユーザーを、グループのニーズに合わせて自由に組み合わせることができます。
- **多様な要件** – 現在、64ビット環境で動作しているユーザーは、有効なライセンスキーを1つ使用して、同じワークステーションに32ビット版と64ビット版のAltovaアプリケーションの両方をインストールすることができます。 
- これは、開発者がAltova MissionKitのすべてのアプリケーション、またはその一部を、32ビット版と64ビット版の両方でインストールし、それぞれのタスクに適したバージョンを選択できることを意味します。例えば、MapForceの32ビット版は、ドライバの制限により、データベースに接続するために必要となる場合があります。その後、開発者は、非常に大きなXMLファイルを扱うために、XMLSpyの64ビット版を起動することができます。 
- 混乱を避けるため、各Altovaアプリケーションの64ビット版は、デスクトップのショートカット名、アプリケーションウィンドウ下部のステータスバー、および「概要」画面で識別されています。 
- 以下に示されたスクリーンショットは、XMLSpyの起動画面とステータスバーの32ビット版と64ビット版を示しています。

[XMLSpy 64ビット版の起動画面とステータスバー](https://www.altova.com/images/64_bit_XMLSpy_splash.png)

## 64ビットソフトウェアに内在する問題点：

### メモリ要件

64ビットアプリケーションは、32ビットアプリケーションと比較して、特定のファイルを読み込む際に、より多くのメモリを必要とします。これは、メモリポインタやその他の構造体のアドレスサイズが自動的に大きくなるためです。XMLファイルの場合、メモリ使用量は約50〜60%増加すると言われています。したがって、64ビットアプリケーションのメリットを最大限に活用するためには、ユーザーは最低でも4GBのメモリを搭載している必要があります。

### データベースとの接続 {#64-database}

一般的に、64ビットアプリケーションは、データベース接続のために64ビットのドライバを必要とします。以下に、より具体的な注意点を示します 

- **ODBC (Open Database Connectivity)** – 64ビットアプリケーションで使用できるのは、64ビット版のODBCドライバのみです。ユーザーは、ODBCの設定ツールを使用することで、特定のコンピューターにインストールされているODBCドライバを確認できます。64ビットのコンピューターには、2つのドライバ設定ツールが存在します。どちらもファイル名が「odbcad32.exe」と記載されていますが、異なるフォルダに配置されています 
- Windows\system32\odbcad32.exe は、64ビット版のODBCドライバを管理します
- Windows\sysWOW64\odbcad32.exe は、32ビット版のそれらを管理します
- **その他のデータベース** – 一部のデータベースには、まだ64ビット対応のドライバが用意されていません。また、ドライバのインストールに問題がある場合や、Windows 7に対応していない場合もあります。詳細については、各データベースの開発元のウェブサイトをご確認ください。

### Microsoft Accessデータベースファイルと64ビットアプリケーションの利用について

Microsoft Jetデータベースエンジンは、Windows 95以前の時代に遡り、Microsoft Accessで作成される*.mdbファイルの基盤となるデータベースエンジンでした。Jetのバージョンは、Windows 7を含むMicrosoft Windowsのすべてのバージョンに搭載されており、32ビットアプリケーションが*.mdbファイルに含まれるAccessデータベースに接続するために使用されています。

Microsoft Accessは、Office 2007から、*.accdbという拡張子を持つ新しいファイル形式と、追加の機能が導入されました。Access 2007（およびそれ以降のバージョン）のデータベースファイルは、新しいMicrosoft ACE（Access Database Engine）ドライバによってサポートされています。

Microsoft Jetデータベースエンジンは、現在ではサポートが終了した製品と見なされています。Windows 7にはまだ搭載されていますが、64ビット版への移行に関する公式な発表は行われていません。Microsoft ACEデータベースエンジンは、64ビットシステム向けのバージョンがあり、以下のURLから（ドライバのみ）直接ダウンロードできます

[http://www.microsoft.com/downloads](https://www.microsoft.com/en-us/download/details.aspx?id=54920)

Microsoft ACEデータベースエンジンは、Microsoft Office 2010のx64版の一部としてダウンロードできます。詳細は以下のURLをご覧ください

[https://products.office.com](https://products.office.com)

現在、64ビット版のACEドライバには、残念ながら、Microsoft Officeの32ビット版との同時利用ができないという制限があります。

Altova MissionKitの64ビット版アプリケーションは、現在、Accessデータベースを開く際に、ファイル拡張子が*.mdbであっても*.accdbであっても、x64版のMicrosoft ACEドライバが必要となります。

Altovaの32ビット版アプリケーションで作成された既存のファイル（例えば、MapForceのマッピングやStyleVisionのスタイルシートなど）には、32ビット版のJet OLEDBプロバイダ（Microsoft.Jet.OLEDB.4.0）に関する接続情報が含まれている場合があります。Altovaの64ビット版アプリケーションは、これらの古いファイルを自動的に、ACEドライバ（Microsoft.ACE.OLEDB.12.0）を使用する接続に変換します。ユーザーは、上記のように説明されている64ビット版のACEドライバをインストールするだけで済みます。

### バージョン管理システム

Altova社は、XMLSpyおよびUModelにMicrosoft Source Code Control Interface (MSSCCI) バージョン1.1から1.3を実装しており、多くの一般的なバージョン管理システムとの連携をテストしています。さらに、DiffDogは、スタンドアロンのバージョン管理システムを使用する場合、デフォルトの差分/マージツールとして簡単に設定できます。

多くのSCCクライアントが64ビット版を持っていないため、Altovaは特別なSCCブリッジソフトウェアを提供しています。このソフトウェアにより、Altovaアプリケーションの64ビット版が、SCCの32ビットクライアントを利用できるようになります。このブリッジはシステムに深く統合されており、64ビットのSCCクライアントが利用できない場合でも、ユーザーからは透過的に動作します。

### ブラウザプラグイン

32ビットのブラウザでは32ビットのプラグインが必要であり、64ビットのブラウザでは64ビットのプラグインが必要です。現在、Internet Explorerのみが両方のバージョンで利用可能です。そのため、Internet Explorer用のAltova Authentic Browserプラグインも、32ビット版と64ビット版の両方で提供されています。Firefoxは現在、32ビット版のみが提供されています。Authentic Browserプラグインのドキュメントには、HTMLページに指示を埋め込み、正しいバージョンのAuthentic Browserプラグインをダウンロードおよびインストールする方法を示すサンプルHTMLコードが掲載されています。

### Visual StudioおよびEclipseとの連携機能 {#ide}

Visual Studioは32ビットアプリケーションとしてのみ提供されています。そのため、Visual Studio用のAltova統合パッケージも、32ビット版のみで提供されています。

Visual Studioは32ビット版のみが提供されているため、お客様は **しなければならない** XMLSpy、MapForce、StyleVision、UModel、またはAuthenticの32ビット版をインストールすることで、Visual Studio内でこれらのツールを使用し、IDEのワークフローにシームレスに統合できます。Windowsのバージョンが32ビット版であっても64ビット版であっても、対応する統合パッケージの32ビット版も必ずインストールしてください。

Eclipseは、32ビット版と64ビット版の両方で利用可能であり、それぞれに対応するプラグインが必要です。Altovaは、Eclipseのバージョン2007リリース以降、32ビット版のEclipse統合パッケージを提供しており、現在では32ビット版と64ビット版の両方に対応した統合コンポーネントを提供しています。

### Microsoft Wordとの連携機能

Microsoft Wordには、32ビット版と64ビット版があります。Altova StyleVisionは、Microsoft Word 2007以降（OOXML形式）や.rtf形式など、様々な形式で高度なレポートを生成し、表示することができます。また、Altova DiffDogには、Microsoft Word 2003以降のドキュメントに特化した比較機能が搭載されています。

StyleVisionまたはDiffDogでMicrosoft Wordのドキュメントを表示するには、そのヘルプ画面に表示されているMicrosoft Wordのバージョンと、インストールされているAltovaのツールが同じバージョンである必要があります。つまり、32ビット版のMicrosoft Wordを使用している場合は、StyleVisionまたはDiffDogの32ビット版を**必ず** 使用する必要があります。また、64ビット版のWordを使用している場合は、Altovaのツールの64ビット版を**必ず** 使用する必要があります。

### ActiveX インターフェース

ActiveXインターフェースを使用することで、Altovaアプリケーションのユーザーインターフェースと機能を、お客様のアプリケーションに統合することができます。お客様のアプリケーションが32ビット版の場合、Altovaソフトウェアの32ビット版をインストールする必要があります。64ビット版のアプリケーションの場合は、Altovaソフトウェアの64ビット版が必要です。 

### COMインターフェース

COMインターフェースは、ユーザーインターフェースを介さずに、APIを通じてAltovaアプリケーションの機能を自動化します。通常、Windowsは32ビットアプリケーションに対して32ビットのCOMを、64ビットアプリケーションに対して64ビットのCOMを公開します。混在した環境での利用も可能ですが、追加の作業が必要になる場合があります。例えば、Altovaソフトウェアの64ビット版のみをインストールしており、それを32ビットアプリケーションから利用したい場合は、以下の手順を実行する必要があります


connect to an application:	CComPtr < IUnknown > ipApplication;	HRESULT hRes;	DWORD dwClsContext = CLSCTX_ALL;	hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 		(void **)&ipApplication.p );	if ( !SUCCEEDED( hRes ) )	{#if defined( _WIN64 )		dwClsContext |= CLSCTX_ACTIVATE_32_BIT_SERVER, #else // _WIN64		dwClsContext |= CLSCTX_ACTIVATE_64_BIT_SERVER, #endif // _WIN64		hRes = ::CoCreateInstance( m_clsidOfApplication, NULL, dwClsContext, IID_IUnknown, 			(void **)&ipApplication.p );	}	if ( SUCCEEDED( hRes ) )	{		// some code		...	}open CLSID in correct view:	LONG OpenCLSID( LPCTSTR  strCLSID, REGSAM samDesired, hObjCLSIDKey )	{		HKEY hCLSIDKey;		LONG rc = RegOpenKeyEx( HKEY_CLASSES_ROOT,_T("CLSID"), 0, samDesired, &hCLSIDKey );		if ( rc == ERROR_SUCCESS )		{			LONG lRet = RegOpenKeyEx( hCLSIDKey, strCLSID, 0, samDesired, &hObjCLSIDKey );			RegCloseKey(hCLSIDKey);			if ( lRet != ERROR_SUCCESS && samDesired == KEY_READ )			{#if defined( _WIN64 )				samDesired |= KEY_WOW64_32KEY;#else // _WIN64				samDesired |= KEY_WOW64_64KEY;#endif // _WIN64				// try other view				rc = OpenCLSID( strCLSID, samDesired, hObjCLSIDKey );			}		}		return rc;	}	...	HKEY hObjCLSIDKey;	if ( OpenCLSID( < a class id > , KEY_READ, hObjCLSIDKey ) == ERROR_SUCCESS )	{		// one can now open subkeys using this key as parent		...	}Altovaのアプリケーション間で通信を行う際、各アプリケーションは対応するバージョンを呼び出そうとしますが、対応するバージョンが見つからない場合は、利用可能な別のバージョンが呼び出されます。例えば、64ビット版のMapForceと32ビット版のXMLSpyがインストールされている場合、それらは互いに通信して、XMLSpy内でMapForceのマッピングで参照されているXMLスキーマを編集したり、XMLSpyプロジェクトからMapForceの変換を実行したりすることができます。


## Customers Say

高品質なツールには、替えがきかないということを学びました。そして、実際に、御社のMissionKitスイートは、まさに高品質なツールであり、私がこれまで出会った中で、企業向け開発に最も優れたツールの一つです。また、ソフトウェアがどのように開発されるべきかを示す、素晴らしい例と言えるでしょう。素晴らしい製品を開発されたことに、心よりお祝い申し上げます。
Thomas D. Blersch
Senior Software Engineer, Exeter Government Services LLC

