20160708
新規したの関数で値が戻ってこないので、調べたところ、
内部では正しく値が取得できていましたが、
引数に戻す値がセットできないかたちのようなので、
下記のように変更したところ値が返ってくる世になりました。
メソッドは省略に記載しています。
※※修正前※※--------------------------------------
Public Boolint Getinfomation
(
char *size,
char *material
)
{
size = GetIniFile(inifile, key1);
material = GetIniFile(inifile, key2);
return TRUE;
}
※※修正前※※--------------------------------------
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
※※修正後※※--------------------------------------
Public Boolint Getinfomation
(
char *p_size,
char *p_material
)
{
char *size, *material;
size = GetIniFile(inifile, key1);
material = GetIniFile(inifile, key2);
// 引数のcharポインターにメモリの内容をコピー
if (size && p_size) strcpy(p_size, size);
if (material && p_material) strcpy(p_material, material);
return TRUE;
}
※※修正後※※--------------------------------------
以上の問題に対して、よく分かてなくています。
C言語を学んでいくと、納得できていけるかもしれません。
C言語でのね渡しとポインタ渡しと参照渡しについては
まだまだですね。
もし、理解できれば、また本文章を更新します。
私も楽しみます。
勉強しかないなあ!!!
たぶん、 GetIniFile(inifile, key1);でアドレスを変更してしまった。
安全性のために、引数のアドレスはそのまま保留して、
取得された値でけを引数のメモリにコピーします。
strcpyは値のみをコピーします。
没有评论:
发表评论