using 在.net中定义为来引用命名空间的。而InteropServics是为了调用早期的com组件而定义的命名空间。比如你有现成的用VC或其它语言开发的DLL,你首先想到的是如何重用它,而不是重写它,.net就提供了这样一个命名空间用于访问这些早期的DLL。

解决方案 »

  1.   

    DllImport 确实是用来调用DLL中函数的,但它既不是用来调用.net库中的函数,也不是用来调用早期COM组件中的函数的!调用COM组件需要用TLBIMP工具为COM组件生成一个元数据包装,然后只要引用此组件即可。DllImport是使用由C/C++生成的动态链接库中的函数的,也就是WIN32DLL,也就是现在MS所称的非托管函数。下面举一例:[DllImport("user32.dll"]
    static extern int MessageBoxA(int hWnd, string msg,caption, int type);