在C#中调用C写的Dll,
函数原型为 void GetPic(char * szCode, BYTE * pPicture)用C#建个窗口应用程序        [DllImport("PictureGenerator.dll", EntryPoint = "GetPic")]
        static extern void GetPic(string szCode, byte[] pPicture);
        private void Form1_Load(object sender, EventArgs e)
        {

            Byte[] pPic = new Byte[9000];
            GetPic("test", pPic);
        }这样是可以调用的。但是,同样的代码,放在WEB中就不行了。在运行到GetPic时就会出错。说是 
NullReferenceException: 未将对象引用设置到对象的实例
这是为什么啊,窗口程序的与WEB有什么不同么。

解决方案 »

  1.   

    并不是所有的代码都可以在web下运行的
      

  2.   

    呵呵,真巧,我去年也遇到一模一样的问题这个有可能是 webform在 asp.net 帐户下有权限限制看看下面的例子,就可以解决:http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158
      

  3.   

    权限问题asp.net用户没有那么高的权限可以执行win32
      

  4.   

    但我试过一个int SUM(int a ,int b)
    就做个简单的加法的函数是可以用的,问题貌似出在参数上。
      

  5.   

    果然是权限问题,我在dll函数里有个写log到硬盘的语句,就在这出了问题。