将excel工作表或工作簿传递给c ++ dll

时间:2015-02-05 19:49:46

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

我正在尝试将Excel工作簿或工作表传递给C ++ DLL。 我目前的方法是使C ++函数类似于以下内容:

int __stdcall myfunction(Excel::_WorksheetPtr dest_pSheet){
//some stuff to edit the worksheet ass:
 dest_pSheet->Cells->Item[1][1] = 1;
}

在我的def文件中,我有:

LIBRARY "MyDll"
EXPORTS
    test

在Excel中,我发出以下声明并致电:

Private Declare PtrSafe Sub test Lib "PathToDll/My.dll" _
         (ByRef destSheet As Worksheet) As Long

Sub CallTest()
    test ThisWorkbook.Worksheets("sheetname"))
End Sub

我使用的是Windows 7(64位),Excel和Visual Studio 2010。

编辑:这种方法有时可行,但并不总是

edit2:将(ByVal destSheet As Long)改为(ByRef destSheet As Worksheet)

PD:看到收到的论据,我注意到参数不完全适合。导致读数并不总是正确的。

0 个答案:

没有答案