Tag: 转换

使用ExeCOMServer时,无法将类型为“…”的COM对象转换为接口类型“…”

我正在使用这个exe com服务器: https://cfx.svn.codeplex.com/svn/Visual%20Studio%202008/CSExeCOMServer/ExeCOMServer.cs 我的编程是一个com应用程序 采用另一个com对象的我的com方法是void Init(AppsScriptRunningContext rc); 在这个方法中,我尝试读出一个属性并得到此错误 无法将“AppsScriptLib.AppsScriptRunningContextClass”类型的COM对象强制转换为接口类型“AppsScriptLib.IAppsScriptRunningContext”。 此操作失败,因为对于具有IID“{4D2E5723-87C2-49C1-AA28-ED2D88275100}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULTexception:0x80004002(E_NOINTERFACE)) 如果我的应用程序不是com服务器而是普通的com应用程序,则没有错误。 这就是为什么我认为错误是由exe com服务器产生的。 https://cfx.svn.codeplex.com/svn/Visual%20Studio%202008/CSExeCOMServer/ExeCOMServer.cs 问候,克里斯

将类型数组转换为通用数组?

问题的简短版本 – 为什么我不能这样做? 我只限于.NET 3.5。 T[] genericArray; // Obviously T should be float! genericArray = new T[3]{ 1.0f, 2.0f, 0.0f }; // Can’t do this either, why the hell not genericArray = new float[3]{ 1.0f, 2.0f, 0.0f }; 更长的版本 – 我在这里使用Unity引擎,虽然这并不重要。 是什么 – 我试图在其固定的Vector2(2个浮点数)和Vector3(3个浮点数)和我的通用Vector 类之间进行转换。 我无法将类型直接转换为通用数组。 using UnityEngine; public struct Vector { private readonly T[] […]

如何在wpf中获取多个项目的边界框?

我有几个项目,我想计算一个它们可以适合的最小矩形,但项目旋转到某种程度,或倾斜或两者。 那么我如何得到可以包含所有的最小矩形?

如何在不改变基于当前位置X和Y的纵横比的情况下调整旋转控件的大小?

目前我使用了以下代码,它工作正常,但不尊重宽高比: private double angle; private Point transformOrigin; private ContentControl designerItem; public ResizeThumb() { DragStarted += new DragStartedEventHandler(this.ResizeThumb_DragStarted); DragDelta += new DragDeltaEventHandler(this.ResizeThumb_DragDelta); } private void ResizeThumb_DragStarted(object sender, DragStartedEventArgs e) { this.designerItem = DataContext as ContentControl; if (this.designerItem != null) { this.transformOrigin = this.designerItem.RenderTransformOrigin; RotateTransform rotateTransform = this.designerItem.RenderTransform as RotateTransform; if (rotateTransform != null) this.angle = rotateTransform.Angle […]

如何限制窗口商店应用程序中canvas内图像的转换

我一直在为这个问题苦苦挣扎两周。 我正在应用拖动和缩放到canvas中的图像.Dragging工作正常并限制canvasIsBoundary函数内部,但当我应用缩放其拖动区域更改。 如果用鼠标拖动区域增加缩放也增加,并且我使它缩小尺寸拖动区域也缩小。帮助我解决这个限制缩放的问题谢谢。 这是我的代码链接示例

在C#中转换exception

尝试执行此操作时为什么会出现InvalidCastException ? throw (ArgumentNullException)(new Exception(“errormessage”, null)); 这是以下function的简化版本。 public static void Require(bool assertion, string message, Exception innerException) where T: Exception { if (!assertion) { throw (T)(new Exception(message, innerException)); } } 完整的错误消息是: System.InvalidCastException:无法将类型为’System.Exception’的对象强制转换为’System.ArgumentNullException’。

如何在不必每次生成代码时进行更改的情况下扩展LINQ-to-SQL类?

评论更新: 我需要通过自己的参数扩展linq-to-sql类,并且不想触及任何生成的类。 欢迎任何更好的建议。 但是如果linq-to-sql类正在改变,我也不想再次进行所有属性赋值。 因此,如果vstudio为类生成新属性,我将自己的扩展属性保持独立,并且新的内部来自类本身 原始问题: 我不确定是否可能。 我有一辆级车和一辆mycar从车级延伸出来。 类mycar还有一个字符串列表。 唯一的区别。 我怎样才能将任何汽车对象投射到mycar对象,而无需手动分配所有属性。 喜欢: Car car = new Car(); MyCar mcar = (MyCar) car; 要么 MyCar mcar = new MyCar(car); 或者我可以用自己的变量扩展汽车,而不必总是这样做 Car car = new Car(); MyCar mcar = new MyCar(); mcar.name = car.name; mcar.xyz = car.xyz; … 谢谢。

C#中的图像转换

我正在开发一个生成和读取表单的文档处理应用程序。 附加的样本表格作为打印文档生成,由人填写,扫描并反馈给应用程序以检测填充值,包括光学标记(气泡),文本(OCR)等。 单击此处查看样本表格 。 由于扫描在旋转,缩放和平移方面使图像失真,我使用三个标记来检测方向并以相当原始的方式校正图像,这在计算和存储方面非常昂贵。 以下是它的要点: 从磁盘读入图像。 使用AForge.net检测bolbs。 使用形状,相对大小和其他属性过滤掉标记。 计算旋转并旋转图像。 使用AForge.net从旋转的图像中检测bolbs。 计算缩放比例并缩放旋转图像。 使用AForge.net从缩放图像中检测bolbs。 计算平移并平移旋转的缩放图像。 使用AForge.net从翻译的图像中检测bolbs。 过滤掉答案标记(气泡),因为我已经拥有原始表格的位置。 提取平均颜色并与阈值进行比较以确定选项是否已填充。 以上是一种非常准确但效率低下的处理方法,我希望采用几何方法来仅提取blobs,过滤掉标记/气泡,并使用简单的数学计算气泡相对于标记的预期位置。 这应该将处理时间减少80%,内存使用量减少60%。 或者,有一种方法可以在单个图像上应用所有三个变换,而不会影响下一个。 这也将减少blob检测三次的需要。

为什么允许从超类到子类的隐式转换?

有人可以告诉我为什么“//编译”的行编译,以及“//不编译”的行为什么不编译? 我不明白为什么A可以隐含地转换为B,而不是相反。 public class SomeClass { static public void Test() { AClass a = new AClass(); BClass b = new BClass(); a = b; // Compiles b = a; // Doesn’t compile } } public class AClass { public void AMethod() { Console.WriteLine(“AMethod”); } } public class BClass : AClass { public void BMethod() { […]

DynamicObject隐式转换

我有一个DynamicObject的子类,我想为原始类型实现隐式转换,就像DO的显式转换方法TryConvert一样; 也就是说,无需编写多个隐式运算符[type]函数。 用法: dynamic myDynamicObject = new MyDynamicObject(“1”); int sum = 1 + myDynamicObject; // instead of int i = 1 + (int)myDynamicObject; 这是可能的,如果是的话,怎么样?