DLLでの作成時のエラー

解決


さとう  2006-07-28 02:45:25  No: 62577

VC++6.0  にて

DLLを作成しているのですが、リビルドすると
error C2165: 'left-side modifier' : データへのポインタは変更できません。

とエラーになってしまいます。
エラーになっている所は、関数の宣言をしているところです。

申し訳ございませんが、どこが悪いのかアドバイスお願いします。

*TEST.cpp ファイル
TEST_API double _stdcall  *least(int m, int n, double *x, double *y)
{
double **A, **w, *z, x1, x2;
      ・
      ・
      ・
return z;
}

*TEST.h  ファイル
#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif

TEST_API double _stdcall  *least(int m, int n, double *x, double *y);

VB掲示板で投稿させていただいたのですが、中身がVCだと思いますので
VC掲示板でも投稿させていただきました。


Blue  2006-07-28 02:49:04  No: 62578

>TEST_API double _stdcall  *least(int m, int n, double *x, double *y);
たんに * の位置がおかしいだけなのでは?

TEST_API double* _stdcall least(int m, int n, double *x, double *y);

VBにdobule型のポインタを返せるかは微妙ですが。(多分無理)


Blue  2006-07-28 02:51:34  No: 62579

>VBにdobule型のポインタを返せるかは微妙ですが。(多分無理)
訂正。

VB6以前なら Long 型でポインタを受ければ可能ですね。
Dobuleの値を参照したいならば、CopyMemoryとかのAPI使わなければダメそうですけど。

VB.NET,VB2005でしたら、マーシャラが何とかしてくれるとおもうけど。


さとう  2006-07-28 05:32:51  No: 62580

無事解決しました。

Blueさん、ありがとうございます。

今後も不明な点がありました際は、よろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加