我正在尝试为 Word 2024 开发插件。
我创建了一个像这样的虚拟 dll:
#include <Windows.h>
extern "C" int WINAPI wlAutoOpen(void);
extern "C" int WINAPI wlAutoClose(void);
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ulReason, LPVOID lpReserved)
{
if(ulReason == DLL_PROCESS_ATTACH)
MessageBoxA(0, "from addin", 0, 0);
return TRUE;
}
int WINAPI wlAutoOpen(void)
{
return MessageBoxA(0, "test open", 0, 0);
}
int WINAPI wlAutoClose(void)
{
return MessageBoxA(0, "test close", 0, 0);
}
和一个 def 文件:
LIBRARY wlTest
EXPORTS
wlAutoOpen
wlAutoClose
我做了一个 x86/x64 版本(都尝试过)重命名为
test.wll
复制到:C:\Users\Administrator\AppData\Roaming\Microsoft\Word\STARTUP
然后我启动了Word,但在启动时或打开/关闭任何Word文档时我没有收到消息框。有人可以把我推向正确的方向吗?
Add-Ins
中有一个菜单word add-ins
,由于某种原因没有.wll
的选项。有一个关于如何安装word插件的官方文档。
https://learn.microsoft.com/en-us/office/dev/add-ins/publish/publish
您可以选择任何您喜欢的方法来安装插件。
除此之外,请检查您是否正确使用 winapi 中的 MessageBox。
您将某些函数标记为“C”。您确定 MessageBox 是 C 函数,而不是 C++ 函数吗?
int 消息框( [输入,可选] HWND hWnd, [输入,可选] LPCTSTR lpText, [in,可选] LPCTSTR lpCaption, [in] UINT uType );
uTyPe 参数是函数唯一的非可选参数。您将零传递给参数。这是预期的吗?
打开编译器的警告。我立即看到的是,函数参数未使用。