Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中传递矩形ValueType时获取“InvalidCastException”_C#_Image Composite Editor - Fatal编程技术网

C# 在c中传递矩形ValueType时获取“InvalidCastException”

C# 在c中传递矩形ValueType时获取“InvalidCastException”,c#,image-composite-editor,C#,Image Composite Editor,我正在使用MicrosoftFot图像合成引擎ICE中的StitchEngine.dll尝试在c中将图像缝合在一起。我正在尝试使用以下方法导出生成的图像: StartExporting(string, System.ValueType, Microsoft.Research.ICE.Stitching.OutputOptions, bool) 该方法的说明如下: public bool StartExporting(string *filename*, System.ValueType *cr

我正在使用MicrosoftFot图像合成引擎ICE中的StitchEngine.dll尝试在c中将图像缝合在一起。我正在尝试使用以下方法导出生成的图像:

StartExporting(string, System.ValueType, Microsoft.Research.ICE.Stitching.OutputOptions, bool)
该方法的说明如下:

public bool StartExporting(string *filename*, System.ValueType *cropRectangle*, float *scale*, Microsoft.Research.ICE.Stitching.OutputOptions *outputOptions*, bool *showCompletion*.
当我尝试调用该方法时,我得到一个InvalidCastException,指出指定的强制转换无效

我正在做以下工作:

Microsoft.Research.ICE.Stitching.OutputOptions outOpt = new Microsoft.Research.ICE.Stitching.OutputOptions(Microsoft.Research.ICE.Stitching.ExportFormat.JPEG, 75, false, false, false);
var valTyp = new Rectangle(0, 0, 500, 1280);
StartExporting(myFilename, valTyp, outOpt, false);

有人知道我如何纠正这个问题吗?

正如Hans Passant告诉我的那样,正确的类型是System.Windows.Int32Rect。这需要添加WindowsBase作为引用。

您是指System.Drawing中的矩形结构还是System.Windows.Shapes中的矩形类?后者当然不能转换为ValueType。无论如何,您不应该在代码中使用ValueType。方法如何处理参数?我无法想象如果不是通过t:struct的泛型约束,人们会如何使用ValueType。您有关于参数的预期实际类型的文档吗?您在那里看到ValueType的事实强烈表明方法签名出了问题。ValueType是.NET中所有值类型的标称基类型,但显式使用它几乎从来都不正确。该方法显然不接受矩形,而是接受其他类型。如果DLL是托管的,您可以使用像ILSpy这样的反汇编程序来更清楚地了解它在做什么。如果它是使用DllImport或COM接口的一部分声明的非托管签名,则查找非托管签名会有所帮助。这是我希望从一个不可靠的类型库中看到的东西。我正在尝试使用Microsoft Image Composite引擎的Stitchine。它不是当前可用的SDK或API,因此文档不存在。我正在使用Visual Studio中的对象浏览器查看属性、方法和事件定义。我将修改这个问题以反映我所知道的情况。我想也许我不应该马上说我在做什么,但是哦,好吧。我会尝试使用ILSpy!它是一个C++/CLI程序集,当程序员错误地使用^hat时,ValueType是该语言中的一个传统错误。一个好的反汇编程序是首选的武器,它告诉您需要从WindowsBase使用System.Windows.Int32Rect来保持CLR正常。如果您想知道为什么您的异常没有包含类似的有用消息,则无法将“System.Drawing.Rectangle”类型的引用解装箱为“System.Windows.Int32Rect”类型的值。,我认为这与Richard有关,你介意提供一个使用Stitchine.dll成功缝合的最小示例吗?我为此提出了一个新问题。谢谢你考虑我的要求。