vba调用c++的dll时,参数是指针数组,无法匹配.求助!

illfar illfar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
c++代码:long functionA (class a, struct1 *IDINFO, struct2 * NameINFO)
{
...
a->add(IDINFO,NameINFO);
...
}
IDINF是入力的,NameINFO是出力的,主要问题是NameINFO这个结构体里有数组指针
struce NameINFO
{
wchar * STR[11]
long num
}


VBA代码:
Private Declare Function functionA Lib "functionA.dll" (ByVal objptr As Long, ByRef ID As IDINFO, ByRef Name As NameINFO) As Long

在vba中定义了这个结构体
Private Type NameINFO
str(1 To 11) As String
num As Long
End Type

然后用vba调用这个函数后,原来在c++里时,STR[1]到[11]里面是放的字符串,如

STR[1]是"我们"

STR[1]是"agd"
....
可是vba出来后,值感觉都只有2个字符了
STR[1]是"w."
STR[1]是"a."
....

感觉应该是vba接口这个函数时,结构体定义时的类型和c++的不匹配吧
但不知道则么改
请教高手,急!!
...全文

相关推荐

VBA调用C++DLL

VBA调用C++DLL C++DLL示例 以下建立了一个比较简单的C++的DLL,它的输入是一个字符串,两个double类型的变量,输出double类型的计算结果。 CPP代码: #include stdafx.h #include test_excel.h double fun_property(const char *outProp, double inProp1Value, double inProp2Value) { doubleval = inProp1Value + inProp2Value; return val; } 头文件的设置如下,需要注意的是e

weixin_38612437

C++辅助VBA开发DLL[项目代码]

本文介绍了如何利用C++为VBA开发动态链接库(DLL)以弥补VBA在性能、功能调用等方面的局限性。作者指出,VBA在处理复杂功能时存在不足,而C++可以弥补这些缺陷,但直接为CorelDRAW开发基于MFC的DLL较为繁琐。因此,作者建议在核心功能或性能要求高的部分使用C++,其余部分仍用VBA实现,两者结合可提高开发效率。文章还列举了这种混合开发方式的五大优点,包括节省时间、功能强大、避免全体编译、灵活调用以及测试时无需重启CorelDRAW。此外,作者推荐使用VS2019社区版作为开发环境,并提供了安装组件的建议。最后,文章展示了如何通过LoadLibrary动态调用DLL的代码示例,强调了动态调用的灵活性和内存管理的便利性。

yhn45678901

MATLAB2014aC++代码生成,并用VC2010生成dll供VBA或VB调用使用说明.pdf

。。。

春哥111

使用数组和范围的Excel的C ++ DLL

如何在Excel中向C ++ DLL和从C ++ DLL传递和返回数组和范围。

weixin_38553466

MarlabSimulink(2014a)生成C++代码,并用VC2010生成dll供VBA或VB调用使用说明.pdf

。。。

春哥111
评论 14
收藏 已收藏
分享
返回顶部
illfar
VBA 2,506 成员 10,830 内容