【发布时间】:2014-07-29 09:50:26
【问题描述】:
我目前正在玩活动。但不幸的是,VBA 中的后期绑定不支持事件。所以我正在使用AddressOf。在 Access/Excel(我的应用程序)中它工作正常 (see link)
从 C# 调用文本返回“??”而不是正确的文本
谢谢,安迪
public delegate void CallbackMsg(string msg, int unused1, int unused2, int unused3);
[ComVisible(true)]
public void TestProcess(int callback)
{
CallbackMsg x = (CallbackMsg)Marshal.GetDelegateForFunctionPointer(new IntPtr(callback), typeof(CallbackMsg));
x.Invoke("Hello Office", 0, 0, 0);
System.Windows.Forms.MessageBox.Show("Test DOTNET");
}
【问题讨论】:
-
这是一个猜测,但它可能与 unicode 相关吗? C# 文本将是 unicode,但 Access(或您使用的函数)可能不是。
-
当我在 VBA 中移动变量时,工具提示显示“
-
这确实向我表明您遇到了编码问题。 Unicode 可以是每个字符 2 个字节。
标签: c# excel vba ms-access office-interop