C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■103478 / 5階層)  VBAから扱えるDLLの作成
□投稿者/ radian (162回)-(2024/12/13(Fri) 10:21:05)
今はNativeAOTを使用して、COMではないネイティブDLLも作成出来るようになりました。

https://kagasu.hatenablog.com/entry/2022/12/09/173354

UnmanagedCallersOnly属性を付与して関数をエクスポートすると、
-----
using System.Runtime.InteropServices;

namespace CsNativeDLL;

public class Exports
{
    [UnmanagedCallersOnly(EntryPoint = "ShowMessage")]
    public static void ShowMessage(IntPtr pMessage)
    {
        var msg = Marshal.PtrToStringUni(pMessage);
        MessageBox.Show(msg);
    }
}
-----

Excel側からはこのように呼び出せます。
-----
Private Declare PtrSafe Sub ShowMessage Lib "CsNativeDLL.dll" (ByVal pStr As LongPtr)


Private Sub CommandButton1_Click()
    Call ShowMessage(StrPtr("あいうえお"))
End Sub
-----

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[4]: VBAから扱えるDLLの作成 /くま →Re[6]: VBAから扱えるDLLの作成 /あずさ2号
 
上記関連ツリー

VBAから扱えるDLLの作成 / あずさ2号 (24/12/10(Tue) 15:21) #103472
Re[1]: VBAから扱えるDLLの作成 / くま (24/12/10(Tue) 15:58) #103473
  └ Re[2]: VBAから扱えるDLLの作成 / くま (24/12/10(Tue) 16:07) #103474
    └ Re[3]: VBAから扱えるDLLの作成 / あずさ2号 (24/12/11(Wed) 10:51) #103475
      ├ Re[4]: VBAから扱えるDLLの作成 / 魔界の仮面弁士 (24/12/11(Wed) 11:30) #103477
      └ Re[4]: VBAから扱えるDLLの作成 / くま (24/12/11(Wed) 11:23) #103476
        └ VBAから扱えるDLLの作成 / radian (24/12/13(Fri) 10:21) #103478 ←Now
          └ Re[6]: VBAから扱えるDLLの作成 / あずさ2号 (24/12/24(Tue) 17:31) #103481 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信