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掲示板でも投稿させていただきました。
>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型のポインタを返せるかは微妙ですが。(多分無理)
>VBにdobule型のポインタを返せるかは微妙ですが。(多分無理)
訂正。
VB6以前なら Long 型でポインタを受ければ可能ですね。
Dobuleの値を参照したいならば、CopyMemoryとかのAPI使わなければダメそうですけど。
VB.NET,VB2005でしたら、マーシャラが何とかしてくれるとおもうけど。
無事解決しました。
Blueさん、ありがとうございます。
今後も不明な点がありました際は、よろしくお願いします。
ツイート | ![]() |