[問題] 如何傳遞 __arglist 給其他 function

作者: noodleT (麵T)   2017-10-15 13:37:46
internal void foo (string str, __arglist)
{
xxx
}
public void foo2(string str, __arglist)
{
// 請問這邊要如何將其他程式傳進來
// foo2 的 arglist 再傳入 foo ??
foo(str,arglist?);
}
public void Main()
{
int a,b,c;
foo2("ABC",__arglist(out a,out b,out c));
}
作者: ian90911 (xopowo)   2017-10-15 14:26:00
很少看到用到__arglist 這有文件嗎?
作者: yeo1987 (Archie)   2017-10-15 23:45:00
BadImageFormat, 指定 Encoding, CallingConvention 看看https://git.io/vdMts 這樣呼叫應該不會有問題你原本的需求可以參考 MSDN 上 ArgIterator 的範例
作者: noodleT (麵T)   2017-10-16 07:10:00
寫在同一個專案會過,但寫在另一個專案來參考會失敗
作者: yeo1987 (Archie)   2017-10-16 08:11:00
你有檢查 32/64 位元的設定嗎?
作者: noodleT (麵T)   2017-10-16 08:18:00
改 32 一樣失敗
作者: yeo1987 (Archie)   2017-10-18 20:58:00
我測試跨組件不會跳例外, 但 return value 會變 0如果不用 __arglist, 用固定的參數不會有這種情形另外, printf 也會有一樣的情形

Links booklink

Contact Us: admin [ a t ] ucptt.com