LoadDivGraph(graph, 4, 1, 4, width, height, gh);のgraph部分で
「型"TCHAR"の引数は型"const TCHAR *"のパラメータと互換性がありません」と出てしまいます。
プロジェクトのプロパティで文字セットをマルチバイト文字に変更はしています。
どうすることで改善できますでしょうか?
環境は、win10 64bit visualstudio community 2015 です。
よろしくお願いします。
DXライブラリのTCHARの互換性エラーが出てしまいます
Re: DXライブラリのTCHARの互換性エラーが出てしまいます
「文字列」が必要なところに「文字」を入れようとしてエラーが出ているので、適切にコードを修正することで改善できるでしょう。
例えば、引数の型をTCHARからLPCTSTRにするか、
インターフェースを変えてはいけないのなら みたいな感じでしょうか?
例えば、引数の型をTCHARからLPCTSTRにするか、
インターフェースを変えてはいけないのなら みたいな感じでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: DXライブラリのTCHARの互換性エラーが出てしまいます
というのは、みけCAT さんが書きました: 例えば、引数の型をTCHARからLPCTSTRにするか、
Main_ui_sub::Main_ui_sub(LPCTSTR graph)
{
width = 325;
height = 50;
LoadDivGraph(graph, 4, 1, 4, width, height, gh);
}
Main_ui_sub::Main_ui_sub(const TCHAR *graph)
{
width = 325;
height = 50;
LoadDivGraph(graph, 4, 1, 4, width, height, gh);
}
この関数定義においてgraphに代入することを禁止します、という意味です。なので、
という呼び出しはOKになります。
Re: DXライブラリのTCHARの互換性エラーが出てしまいます
この場合は違います。 は、graphではなくgraphの指す先に代入することを禁止するという意味です。 graphへの代入を禁止したい場合は、 graphもgraphが指す先も代入を禁止したい場合は、 と書けます。あんどーなつ さんが書きました:とも書けます。仮引数にconstと書いた場合、const TCHAR *型しか受け付けませんよ、という意味ではなく、
この関数定義においてgraphに代入することを禁止します、という意味です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: DXライブラリのTCHARの互換性エラーが出てしまいます
みけCAT さん
ホントにすいません。考えてみればそうですね。
const TCHAR filename[] = "file1.txt";
と書いたときは、[f][l][e][1][.][t][x][t][\0]が、コード領域(リードオンリー)に格納されるので、
そのデータを使えるようにするにはポインタじゃなくてTCHARのデータそのものを書き込まないようにしないといけないです。
C言語がこんなに便利な言語だとは思いませんでした。
K&Rにも書いてなかったと思います
ホントにすいません。考えてみればそうですね。
const TCHAR filename[] = "file1.txt";
と書いたときは、[f][l][e][1][.][t][x][t][\0]が、コード領域(リードオンリー)に格納されるので、
そのデータを使えるようにするにはポインタじゃなくてTCHARのデータそのものを書き込まないようにしないといけないです。
C言語がこんなに便利な言語だとは思いませんでした。
K&Rにも書いてなかったと思います