導出的函數我有一個Visual Studio 2008的C++的dll,我想接受可變數量的參數,並知道每一個類型。例如:RTTI在從DLL
__declspec(dllexport) void Foo(const char* object, const char* function, ...)
{
printf("%s::%s(", object, function);
va_list list;
va_start(list, function);
while(va_arg(list, ???))
{
printf("[%s] %s ", type, value);
}
va_end(list);
printf(")\r\n");
}
預期使用是這樣的:
Buzz api;
int a = 1;
api.DoSomething(a, "hello", 0.2f);
Foo("Buzz", "DoSomething", a, "hello", 0.2f);
當預期輸出應該是這樣的:
Buzz::DoSomething([int] 1, [const char*] "hello", [float] 0.2)
是這樣的,或者類似的東西,可能與RTTI?如果一個參數可變參數的解決方案是不可能的。(我懷疑它是不是),我可以接受一個包含多個重載1-n個參數。
感謝, PaulH
在DLL不可能...有模板沒有運行實例......你不能知道什麼instatiations將是必要的編譯共享庫... – smerlin 2010-12-10 00:03:18