[问题] 如何传递 __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