Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Runtime.InteropServices;
- namespace PInvokeTest
- {
- class Program
- {
- [UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Ansi, SetLastError = false)]
- public delegate int printf_int(string format, int arg0);
- static void Main(string[] args)
- {
- var lib = NativeLibrary.Load("msvcrt.dll");
- var ptr = NativeLibrary.GetExport(lib, "printf");
- var func = Marshal.GetDelegateForFunctionPointer<printf_int>(ptr);
- var len = func.Invoke("Hello, World! %d\n", 123);
- Console.WriteLine($"printf returns {len}");
- NativeLibrary.Free(lib);
- Console.WriteLine("Hello World!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement