Я не испытал никаких затруднений с помощью API сокетов BSD в C++ в GNU/Linux. Вот пример программы, который я использовал:
#include <sys/socket.h>
int
main()
{
return AF_INET;
}
, Таким образом, мое взятие на этом - то, что z/OS является, вероятно, усложняющим фактором здесь, однако, потому что я никогда не использовал z/OS прежде, а тем более программировал в нем, я не могу сказать это окончательно.:-P
В этой статье описывается безопасная управляемая оболочка для GetProcAddress, которая должна вам помочь.
http://blogs.msdn.com/jmstall/archive/2007/01/06/Typesafe- GetProcAddress.aspx
Вы можете сделать это, вызвав P / в LoadLibrary и GetProcAddress, а затем используя Marshal.GetDelegateForFunctionPointer .
Подробнее см. в этой статье ].
Один из возможных вариантов - создать собственную функцию, которая отвечает за загрузку соответствующей библиотеки DLL и функции в память, а затем возвращает эту функцию в управляемый код на основе вашего пути. Таким образом, вы можете естественным образом использовать трюк GetProcAddress и вернуть точку функции. Затем вы можете PInvoke в этой функции и получить обратно делегата, который затем будет вызываться в соответствующей DLL.
Также см. это сообщение в блоге от Джонатана Свифта title Динамический вызов неуправляемой DLL из .net