1
是否可以引用COM註冊的DLL,然後在VBA代碼的構造函數中創建需要參數的對象?VBA導入COM註冊的dll並使用參數調用構造函數
我已成功地引用了已在regasm
中註冊的Access 2013(64位)中的tlb,並且我設法創建了一個不需要構造函數中的參數的簡單對象。
從我讀的,它不是。我現在面臨重大的重構嗎?
是否可以引用COM註冊的DLL,然後在VBA代碼的構造函數中創建需要參數的對象?VBA導入COM註冊的dll並使用參數調用構造函數
我已成功地引用了已在regasm
中註冊的Access 2013(64位)中的tlb,並且我設法創建了一個不需要構造函數中的參數的簡單對象。
從我讀的,它不是。我現在面臨重大的重構嗎?
它不一定是「主要」。你只需要一個工廠方法,一個接受構建對象所需的所有參數。例如:
public class Foo {
internal Foo(int arg1, string arg2) {
// etc...
}
// Other methods and properties
//...
}
public class FooFactory {
public Foo Create(int arg1, string arg2) {
return new Foo(arg1, arg2);
}
}
現在,您只需在您的VBA代碼中使用FooFactory.Create()。
您是否特意*需要*來操縱VBA中的對象?我問,因爲TLB在版本和更新方面可能是一場噩夢,我個人在開發Office插件時不惜一切代價避免它們。相反,我在.NET中創建了可從VBA調用訪問的方法,並且使用一種方法來完成我需要的所有操作,並保留.NET中所有對象的操作。這意味着我不需要使用regasm,但可以動態調用這些方法,而不必強制鍵入它們。如果你想進一步討論,請給我打電話。 – stuzor