I'm guessing that the prototype for pushfstring is somewhat like this: void pushfstring(const char *fmt, va_list args); If it isn't, and is instead: void pushfstring(const char *fmt.). Then I should have you covered also. In C, if you have to pass on a call from one variadic function to another, you should use va_list, va_start and va_end, and call the v version of the function.
Sekarang kamu dapat menonton 1700 lebih saluran TV Indonesia dan seluruh dunia secara online pada PC atau laptop kamu secara gratis dengan mendownload aplikasi TVexe.Aplikasi TVexe sangat mudah untuk digunakan dan siapa saja bisa menemukan stasiun TV favorit mereka sendiri di aplikasi TVexe. Download aplikasi tv indonesia.
Join Stack Overflow to learn, share knowledge, and build your career. The const keyword not only prevents you from modifying the value of the. You can either pass open arrays of some homogenous type or constant arrays of. An open array may also be defined with const value type. This is called a Variant open array - it is mostly used to allow a variable number of argument value to be passed to a subroutine. In order to pass a Dynamic array by reference, the array and the subroutine definition of the array must be via an array type definition.
So, if you were implementing printf yourself, you might use vsprintf to format the string - you can't call sprintf directly and pass along the variadic argument list. You need to use va_list and friends. It's pretty awkward to handle C's va_list from Delphi, and technically it shouldn't be done - the implementation of va_list is specific to the C compiler vendor's runtime.
However, we can try. Barry Kelly inspired me to seeking a solution without replacing the stack. Here is the solution (probably could also use the Invoke from the rtti unit, instead RealCall_CDecl). // This function is copied from PascalScript function RealCall_CDecl(p: Pointer; StackData: Pointer; StackDataLen: Longint; // stack length are in 4 bytes.