2013-01-04 36 views
0

環境:Windows 7中,XLW 5.x中,微軟的Excel 2007,Visual Studio 2010中,C++在C++中使用Scripting.FileSystemObject時#import之後的下一步是什麼?

考慮下面的代碼位...

#import "c:\windows\system32\scrrun.dll" raw_interfaces_only, \ 
raw_native_types, \ 
named_guids, \ 
rename("DeleteFile", "_DeleteFile"), \ 
rename("MoveFile","_MoveFile"), \ 
rename("CopyFile", "_CopyFile"), \ 
rename("GetFreeSpace", "_GetFreeSpace") 
using namespace Scripting; 

我現在該如何實例化FileSystemObject對象和呼叫它的方法?

回答

1

這爲我工作

std::wstring fileExists(std::wstring name) 
{ 
    VARIANT_BOOL b = 0; 
    ::CoInitialize(NULL); 
    { 
     CComPtr<IFileSystem> spFSO; 
     HRESULT hr = spFSO.CoCreateInstance(L"Scripting.FileSystemObject"); 
     if (SUCCEEDED(hr) && spFSO) 
     { 
      BSTR theName = SysAllocStringLen(name.data(), name.size()); 
      hr = spFSO->FileExists(theName, &b); 
     } 
    } 
    ::CoUninitialize(); 
    return (b == -1) ? L"Exists" : L"Doesn't exist"; 
} 

這至少讓我連接的功能。這種情況仍然存在,但這超出了發佈的範圍。

相關問題