Перепробовал все варианты. В результате заработало со стандартным WINAPI, когда переделал описание с
typedef WORD (WINAPI *typefn_Func2)(byte* vOut);
на
typedef WORD (WINAPI *typefn_Func2)(byte& vOut);
и вызовы, соответственно с
ret = fn_Func2(&b); // все плохо, возвращается не 0 и портятся мои переменные
на
ret = fn_Func2(b); // все плохо, возвращается не 0 и портятся мои переменные
Чего-то я совсем не понял... описание переменных, передаваемых по ссылке как * и как & ведут себя со стеком по разному!?..