VBAでC#のコールバック関数を使いたいです。しかし、C#関数を呼び出すと、「エントリポイントが見つかりません」と表示されます
どうすれば修正できますか?ありがとう
PS: Make assembly COM-Visible と COM inter Environment への登録をチェックしました: MS Office Excel 2007, MS Visual Studio 2008
VBA コード:
Declare Function Result Lib"C:\Users\admin\Desktop\myprog\New_DLL_Test\New_DLL_Test\bin\Debug\New_DLL_Test.dll" Alias "Msg" (ByVal p As Long) As Integer
Function Disp()
MsgBox x
End Function
Sub AddResult(ByVal p As Long)
Dim x As Long
x = Result(p)
Debug.Print x
End Sub
Sub testnow_Click()
Call AddResult(AddressOf Disp)
End Sub
C# コード:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace New_DLL_Test
{
[Guid("f1286974-0f1a-466c-8389-dd1ab7e3eed2"), InterfaceType(ComInterfaceType.InterfaceIsDual)]
interface Msginterface
{
int Msg;
}
public unsafe class MsgProcess
{
public int Msg(int* p)
{
return add(p,1);
}
public int add(int* p, int j)
{
return j+1;
}
}
}