在VBA中导入C ++ DLL库

时间:2017-04-21 13:39:41

标签: vba excel-vba visual-c++ dll excel

我对这个话题很新,所以请原谅我一些虚假的问题。

主要思想是在VBA(例如Excel)中导入从C ++编译的DLL。我正在使用Visual Studio 2017 for DLL。我按照指导工具编写了以下文件:

//KingFunc.h
#pragma once
namespace KingFuncs
{
    extern "C" __declspec(dllexport) int GiveMeNumber(int i);

}

然后.cpp

//KingFunc.cpp
#include "stdafx.h"
#include "KingFunc.h"
#include <stdexcept>

using namespace std;

namespace KingFuncs
{
    int KingFuncs::GiveMeNumber(int i)
{
    return i;
}
}

编译器显然没有错误,并在项目文件夹中生成名为KingFunc.dll的DLL输出。

然后我打开Excel - &gt; VBA工具并写了以下内容:

Option Explicit

Public Declare Function PASS Lib _
"[PATH]\KingFunc.dll" (x As Integer) As Integer

Sub MAIN()
     Dim a As Integer
     Dim b As Integer

     a = 100
     b = PASS(a)

End Sub

其中PATH是VS项目的长文件夹字符串。

我希望它有效,但它不会......“找不到文件是不可能的”我不明白为什么。

我还尝试将VBA调用为

Public Declare Function PASS Lib _
"[PATH]\KingFunc.dll" Alias "GiveMeNumber" (x As Integer) As Integer

0 个答案:

没有答案