多语言展示
当前在线:641今日阅读:103今日分享:49

VBA传递数组给C++ DLL函数

VBA传递数组给C++ DLL函数,以进行函数计算。
工具/原料
1

VS2015 或其他版本

2

EXCEL 2016或其他版本

方法/步骤
1

打开VS2015,生成一个可供EXCEL VBA使用的DLL文件。

2

在EXCEL VBA(ALT+F11打开,ALT+M)新建一个模板,键入以下命令,F5运行,测试DLL文件是否能够使用。此步骤非必须存往此宿在。

3

在EXCEL VBA(ALT+F11打开,ALT+M)新建一个模板,键入以下命令,然后保存关闭EXCEL

4

在VS中打开EXCEL调试,方便查看数据。将调试数据弄到输出显示,需要#include 头文件,用OutputDebugStringA(sst);命令。

5

在VS里F5进行调试,会自动弹出EXCEL,然后打开刚才保存的EXCEL,F5运行SUB函数CC,下图为调试数据,说明VBA传递数组成功。

6

另:国趣指针传递数组的元素序号排序如下,须特别注匠脾意。附所有命令,方便随时借用:c++:#include  #include using namespace arma;__declspec(dllexport) double __stdcall test1(long *psiz, double *inp, double *outp) { long inrow, incol; inrow = psiz[0]; incol = psiz[1]; mat amat(4, 5); char sst[512]; long k = 0; for (int j = 0; j < incol; j++) { for (int i = 0; i < inrow; i++) { outp[i + j*inrow] = inp[i + j*inrow] +0.1; amat(i, j) = outp[i + j*inrow]; sprintf_s(sst, 'the data of row %d col %d : %10.6f\n', i+1, j+1, amat(i,j)); OutputDebugStringA(sst); k++; } } return 1;}

注意事项

注意FOR循环,调试了半天才得到。

推荐信息