- PR -

eVCの開発環境をWindows2000からWindowsXPに移行するとコンパイルエラーが発生する。

1
投稿者投稿内容
agguy
会議室デビュー日: 2004/10/27
投稿数: 10
投稿日時: 2006-08-10 11:05
お世話になります。
以下のとおり開発環境のOSだけをWindows2000からWindowsXPに
移行しようとしているのですが、
Windows2000のPCでコンパイルした場合は、コンパイルエラーにならないのですが、
WindowsXPのPCでコンパイルした場合、コンパイルエラーとなってしまいます。
何か解決する方法はあるのでしょうか?

<<移行前の環境>>
開発環境のOS:Windows2000
クロスコンパイルするOS:PocketPC2003
クロスコンパイルするCPU:Win32 (WCE ARMV4)
IDE:eVC4.0SP3
DB:Oracle9iLite
↓↓↓↓↓↓↓↓
<<移行後の環境>>
開発環境のOS:WindowsXP
クロスコンパイルするOS:PocketPC2003
クロスコンパイルするCPU:Win32 (WCE ARMV4)
IDE:eVC4.0SP3
DB:Oracle9iLite

<<エラーメッセージ>>
D:\\All-In-One-Eclipse\\workspace\\ko00PDA\\Ko00\\Ko31\\Common\\DB\\CommonDB.cpp(218) : error C2664: 'SQLConnectW' : cannot convert parameter 2 from 'unsigned char *' to 'unsigned short *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

<<エラー発生箇所のソース>>
// Connect to the Database
//
BOOL CommonDB :: Connect()
{
CWaitCursor wait;

Disconnect();

if (::SQLAllocEnv(&m_env) == SQL_SUCCESS)
{
if (::SQLAllocConnect (m_env, &m_dbc) == SQL_SUCCESS)
{
if (::SQLConnect (m_dbc, g_pszDB, SQL_NTS, (BYTE*)"SYSTEM", SQL_NTS, (BYTE*)"SYSTEM", SQL_NTS) == SQL_SUCCESS)
return TRUE;
}
}
Disconnect(); // Disconnect by cleaning up!!!
return FALSE;
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-10 12:23
引用:

agguyさんの書き込み (2006-08-10 11:05) より:

WindowsXPのPCでコンパイルした場合、コンパイルエラーとなってしまいます。
何か解決する方法はあるのでしょうか?


エラー内容どおりではないのでしょうか。
conversion requires reinterpret_cast, C-style cast or function-style cast.

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
agguy
会議室デビュー日: 2004/10/27
投稿数: 10
投稿日時: 2006-08-10 12:56
引用:

じゃんぬねっとさんの書き込み (2006-08-10 12:23) より:
引用:

agguyさんの書き込み (2006-08-10 11:05) より:

WindowsXPのPCでコンパイルした場合、コンパイルエラーとなってしまいます。
何か解決する方法はあるのでしょうか?


エラー内容どおりではないのでしょうか。
conversion requires reinterpret_cast, C-style cast or function-style cast.




回答ありがとうございます。
確かにそうなのですが、開発環境のOSが変わることにより、コンパイルエラーがでたりでなかったりする理由が解りません。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-08-11 13:31
こんにちは。

引用:

agguyさんの書き込み (2006-08-10 12:56) より:
確かにそうなのですが、開発環境のOSが変わることにより、コンパイルエラーがでたりでなかったりする理由が解りません。



おそらく、"SQLCHAR型"と"UNICODE"あたりがヒントになると思います。
下記の変更で、どちらの環境でもコンパイルできませんか?

コード:
if (::SQLConnect (m_dbc, g_pszDB, SQL_NTS, (SQLCHAR*)TEXT("SYSTEM"), SQL_NTS, (SQLCHAR*)TEXT("SYSTEM"), SQL_NTS) == SQL_SUCCESS) 



1

スキルアップ/キャリアアップ(JOB@IT)