Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32785 / 76734 ←次へ | 前へ→

【49182】Re:構造体でDLLに値を渡す方法
回答  neptune  - 07/5/26(土) 15:35 -

引用なし
パスワード
   こんにちは

久しぶりに書いたので忘れきっていました。思い出す良い機会でした。
私も聞かれても殆ど説明できませんから各コマンドの詳しくは
MSDNで調べて下さい。

一応動作確認はしてます。こんなので良いんですかね?

/*C*/
/*defファイル*/
LIBRARY   VBDLL
EXPORTS
       dllTypetest

/*Test用cppファイル*/
/*VC6でWin32 DDL作成
#include "stdafx.h" //自動的に作られるヘッダーファイル
#define WINAPI __stdcall

struct kouzou{
        double a ;
        double b ;
        double c ;
        double d ;
        double ans;
}tei;

__declspec( dllexport ) int __stdcall dllTypetest(kouzou *);

BOOL APIENTRY DllMain( HANDLE hModule,
            DWORD ul_reason_for_call,
            LPVOID lpReserved
                     )
{
  return TRUE;
}

//int型を返していますが、構造体も返すことができます。
__declspec( dllexport ) int WINAPI dllTypetest(kouzou *pkouzou)
{
        pkouzou->ans = pkouzou->a + pkouzou->b + pkouzou->c + pkouzou->d;
        return 0;
}
'VB
Private Type kouzou
  a As Double
  b As Double
  c As Double
  d As Double
  ans As Double '戻り値用
End Type

'Dllのパスは適当に書き換えてください。
Declare Function dllTypetest Lib "D:\programings\VBDLL.dll" (typ As kouzou) As Long

Sub t()
Dim typ As kouzou
Dim ret
  With typ
    .a = 1
    .b = 2
    .c = 3
    .d = 4
    .ans = 0
  End With
  ret = dllTypetest(typ)
  MsgBox typ.ans
End Sub

4 hits

【49163】構造体でDLLに値を渡す方法 パンチ 07/5/25(金) 17:51 質問
【49182】Re:構造体でDLLに値を渡す方法 neptune 07/5/26(土) 15:35 回答
【49190】Re:構造体でDLLに値を渡す方法 パンチ 07/5/27(日) 5:01 お礼

32785 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free