Regarding unmanaged C# code -
Thanks for the replies! Here is what my own research has turned up on the subject:
In Microsoft's
Inside C# 2nd edition, it states, "unsafe code does not imply unmanaged code" or something along those lines. So, although I believe it is possible to actually write unmanaged code using the unsafe keyword, I don't see that Microsoft has made it easy to do so. It is still unclear in my mind whether or not unsafe code is compiled to native machine code, or if it is compiled into CLR readable code.
In particular, I wonder how I would go about exporting unsafe C# functions so that they can be used in other unmanaged code. The Dev studio provides a nice template ("MFC DLL"

that does just this sort of thing on the C++ side, but there is no equivalent C# project template. In C++, I can mark my functions as extern "C" and use __stdcall, which does some specific things with the stack that I need in order to call APIs in a DLL from Power Builder and other unamanaged code via dynamic linkage.
in addition, I have to insert the decorated function names in my DLL's .DEF file, or else use __declspec(dllexport) keyword on the C++ side. I do not see how to do this easily in C#.
The Microsoft book does discuss calling C# code from unmanaged code, and the method to do this is via COM. However, this is not the way Power Builder wants to communicate with external functions. Rather, it uses traditional dynamic linkage.
So - what I have done is write unmanaged C++ code using the Dev studio MFC DLL template, and this DLL works fine with Power Builder. I don't think that C# is intended for unmanaged code, at least I don't see that this is what people are doing with it.