我的同事和我自己编写了一个DLL,我们现在正试图在另一个应用程序中使用它。当我们在使用网络摄像头时在我们的应用程序中使用该DLL的函数时,应用程序崩溃了。当我们复制并粘贴完全相同的代码时,应用程序可以工作。 如果我们使用的是图像而不是网络摄像头,那么它也适用于DLL。 我们制作了一个新的应用程序只是为了测试它,当使用该DLL时仍然无效。
我们真的很困惑,因为我们得到了不同的例外,我们真的不知道什么是错的。是否存在可能导致此问题的一般错误?有没有办法调试这个?
代码如下:
private glyphRecognizer recognize = new glyphRecognizer();
picturebox1.image = recognize.recognitionStep1_Grayscaling((Bitmap)picturebox1.image);
对于DLL:
public Bitmap recognitionStep1_Grayscaling(Bitmap image)
{
BitmapData data = image.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, image.PixelFormat);
UnmanagedImage originalImage = new UnmanagedImage(data);
image.UnlockBits(data);
//grayscaling
UnmanagedImage grayImage = null;
if (data.PixelFormat == PixelFormat.Format8bppIndexed)
{
grayImage = originalImage;
}
else
{
grayImage = UnmanagedImage.Create(originalImage.Width, originalImage.Height, PixelFormat.Format8bppIndexed);
Grayscale.CommonAlgorithms.BT709.Apply(originalImage, grayImage);
}
return grayImage.ToManagedImage();
}