gpt4 book ai didi

c++ - 如何为excel创建一个xll?

转载 作者:太空狗 更新时间:2023-10-29 20:47:24 26 4
gpt4 key购买 nike

我正在尝试创建一个简单的 xll 文件,但我做不到我已经按照 msdn 站点中的教程进行操作 http://support.microsoft.com/kb/178474但本教程适用于 Microsoft Excel 97 开发人员工具包,我只有 2007 版visual studio 2005,所以这可能是导致错误的原因:

1>------ Build started: Project: Anewxll, Configuration: Debug Win32 ------
1>Compiling...
1>Anewxll.cpp
1>c:\nam\test\anewxll\anewxll\anewxll.cpp(97) : error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types
1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5031): could be 'int AfxMessageBox(LPCTSTR,UINT,UINT)'
1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5033): or 'int AfxMessageBox(UINT,UINT,UINT)'
1> while trying to match the argument list '(const char [21], long)'
1>c:\nam\test\anewxll\anewxll\anewxll.cpp(140) : error C2665: 'AfxMessageBox' : none of the 2 overloads could convert all the argument types
1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5031): could be 'int AfxMessageBox(LPCTSTR,UINT,UINT)'
1> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5033): or 'int AfxMessageBox(UINT,UINT,UINT)'
1> while trying to match the argument list '(char [8192], long)'
1>c:\nam\test\anewxll\anewxll\anewxll.cpp(174) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [14]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

最佳答案

您收到的错误消息与 Excel 或 Excel SDK 无关。前 2 个错误是由于您使用 AfxMessageBox(一种 MFC API)造成的,第 3 个是由于参数与 Win32 消息框 API 不匹配造成的。造成这些错误的原因是您的项目是一个 Unicode 应用程序(导致 TCHAR 评估为 wchar_t 和诸如 MessageBox 之类的宏评估为 MessageBoxW 而不是 MessageBoxA)。最简单的解决方法是将您的应用程序从 Unicode 更改为 MBCS。

但是 - 如果我可以提出建议 - 考虑使用 Add-in express 或 ExcelDNA 来创建您的 UDF/RTD。我猜您对 Win32 C++ 编程不是很熟悉。如果是这种情况,您将在使用纯 C++ 和 Excel SDK 创建 UDF/RTD/插件时遇到很多麻烦。

相反,如果您使用 add-in express 或 excel dna - 它们会处理将 xlopers 转换为直观的 .net 类型和其他各种管道的所有令人头疼的问题,让您可以自由地专注于您的业务逻辑。

免责声明:我与 add-in express 或 excel dna 没有任何关系。我只是碰巧断断续续地使用过它们。

关于c++ - 如何为excel创建一个xll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com