register_function изисква входна точка за dll и не можете да генерирате това в управляван код.
Можете да напишете C++/CLi обвивка DLL, за да имате собствени входни точки за вашия управляван код, но ако просто започвате от нулата, тогава защо просто не напишете обикновен собствен dll.