掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++、VB、VBA共通DLLを作成するには?〜その2〜 (ID:68089)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
試してみた。 void WINAPI Sample01(VARIANT* v) { ::VariantClear(v); v->vt = VT_BSTR; v->bstrVal = ::SysAllocString(L"ほげ"); } ' VBA Call Public Declare Sub Sample01 Lib "DllTest" (ByRef v As Variant) Sub test() Dim v As Variant ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path Sample01 v MsgBox v End Sub // C Call(動的リンク) int main(void) { HMODULE hDll = ::LoadLibrary(TEXT("DllTest")); if (hDll) { void (WINAPI *pFunc)(VARIANT*) = (void (WINAPI *)(VARIANT*))::GetProcAddress(hDll, "Sample01"); if (pFunc) { VARIANT v; (*pFunc)(&v); ::MessageBoxW(NULL, v.bstrVal, L"", MB_OK); ::VariantClear(&v); } ::FreeLibrary(hDll); } return 0; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.