アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問させて頂きます。

VC++2010ExpressでMYSQLに接続するx64コンソールアプリを作成しているのですが、「アプリケーションエラー」が発生し、先に進めなくて困っております。

<<サンプルコード>>
#include "stdafx.h"
#include "WinSock.h" // Windowsのソケット通信
#include "mysql.h" // MySQLライブラリのヘッダ

int _tmain(int argc, _TCHAR* argv[])
{

MYSQL * con;
con = mysql_init(NULL);

return 0;
}
<<現象>>
サンプルコードを実行すると以下のメッセージが表示されます。
・アプリケーション エラー
・アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じで下さい。
<<環境>>
・VC++2010ExpressにMicrosoft Windows SDK v7.1をいれて64ビットアプリのコンパイルが可能にしてあります。簡単なプログラムを作って、タスクマネージャーで確認した所、64ビットで実行されているようでした。
・OSはWindows Home Server 2011です
・コネクタはmysql-connector-c-6.0.2-winx64.msiをインストールしました。
<<VC++のプロパティなど>>
・インクルードディレクトリ:C:\Program Files\MySQL\MySQL Connector C 6.0.2\include
・ライブラリディレクトリ:C:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt
・リンカー>>追加の依存ファイル:libmysql.lib
・プラットフォームツールセット:Windows7.1SDK

 32ビット用のコネクタで同様の設定を行うと、正常に動作しSelect文で結果も取得できました。
原因がお分かりの方がおられましたら、ご教授お願い致します。

A 回答 (1件)

MySQL側も64bit(特に接続ライブラリ)なのか?


ライブラリの32bit環境と64bit環境は一般的に互換性はないぞ。
64bitでコンパイルするならライブラリも64bit版を使用しないと駄目。

この回答への補足

ご回答ありがとうございます。質問が情報不足ですみません。

mysql-connector-c-6.0.2-winx64.msiは64ビット版のコネクタです。
実験のために32ビット版のコネクタも一緒にインストールしてみました。

OSはWindows Home Server 2011のベースは「Windows Server 2008 R2(64bit版、SP1適用済み)」となり64ビットOSです。

64ビットOSの場合、32ビットアプリと64ビットアプリのインストール先が、変わるようです。

32ビット版で実験したときのライブラリの指定先は「C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2」にしました。

64ビット版のライブラリ指定は「C:\Program Files\MySQL\MySQL Connector C 6.0.2」で指定しています。

何かお気づきの点がございましたら、ご教授よろしくお願いいたします。

補足日時:2012/06/03 14:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!