创建从C到C#的混合模式C ++桥接?

我希望有人可以帮助我,我主要是一个C#开发人员,所以我的C和C ++技能很糟糕。 我有一个原生C dll,它是一个更大的应用程序的插件。 我使用gcc在linux上交叉编译这个dll for windows。 在我创建D3DSurface的原生dll中,我想在混合模式C ++ dll中调用一个函数,并将指针传递给表面以及Hwnd / handle。 那混合模式C ++应该调用我的C#托管代码。 例如,在CI中要做以下事情; Hwnd handle; LPDIRECT3DSURFACE d3dtarg; SurfaceCreated(handle, d3dtarg); 在C#中我希望从混合模式程序集中调用它 public static class D3DInterop { public static void SurfaceCreated(IntPtr handle, IntPtr surface) { //do work } } 由于我吮吸C ++,我只想知道是否有人能给我一个我需要为混合模式dll编码的例子。 我也不想用directx头编译混合模式dll,那么有没有办法将’C’LPDIRECT3DSURFACE转换为通用指针? 在C#中我只是使用IntPtr。

如何从我的Windows Phone 8应用程序(XAML和C#)访问相机并将拍摄的图片保存在确定的文件夹中?

我希望此时正在构建的Windows Phone 8应用程序在按下屏幕上的具体按钮时访问相机拍照,然后将已拍摄的图像保存到确定的文件夹中(创建的文件夹)我的Windows Phone项目,而不是Windows Phone默认图库。 你能帮我看一下相机,把照片保存到我创建的文件夹中吗? 我正在使用XAML和C#。 非常感谢!!!

如何在C#中只引发一个Timer事件?

如何让计时器事件一次触发一个。 例如,我有一个计时器,每10分钟发一次事件。 引发的事件需要10分钟或更长时间才能完成执行。 我希望计时器在事件结束后重置。 换句话说,我不想在任何时候提出超过1个事件的实例。

如何在没有丢失链接的数据库中保存WPF RichTextBox?

我在Richtextbox中有一个链接并且它运行良好但是如果我将Richtextbox保存到数据库中然后加载它要删除的链接我只能看到该链接的文本 例如我的Richtextbox有底部文字: 这是一个链接 但在保存并再次加载后我才能看到文字: 这是一个链接 从所选文本动态创建的超链接如下: RichTextBox.IsDocumentEnabled = true; RichTextBox.IsReadOnly = true; Run run = new Run(RichTextBox.Selection.Text); Hyperlink hyp = new Hyperlink(run) { TargetName = run.Text }; TERM.WordMain main = new TERM.WordMain(); hyp.Click += new RoutedEventHandler(main.hyperLink_Click); hyp.NavigateUri = new Uri(“http://search.msn.com”); RichTextBox.Cut(); var container = new InlineUIContainer(new TextBlock(hyp), RichTextBox.Selection.Start); RichTextBox.IsDocumentEnabled = true; RichTextBox.IsReadOnly = false; 将RTF格式的richtextbox内容保存到文本字段: […]

如何告诉vb6每次创建dll时都不要创建新版本的interfaces / com对象?

我有.NET代码使用的vb6 com服务器(ActiveX DLL项目) 每次我将更改放入vb6代码并生成dll时,我也必须重新编译我的.NET客户端代码,因为它看起来像VB6为接口和com对象生成新的GUID或版本。 我承认这是一个很好的做法,因为进行了更改,但我想禁用此行为,以便每次更新我的vb6 dll时都让我的.NET客户端代码相同。 无论对COM对象或COM接口做了哪些更改,我怎么能告诉VB6保持ActiveX dll的所有GUID和版本都一样?

TCP / IP消息帧

我已经建立了一个TCP / IP服务器/客户端,它是异步的,但它连接了消息。 我如何正确地在开始时添加标题,然后在最后使用字符串构建器来取消连接完整的消息。 服务器阅读消息: Private Sub ReadCallback(ByVal result As IAsyncResult) Try allDone.Set() Dim success As Boolean = result.AsyncWaitHandle.WaitOne(500, True) If success Then Dim client As ServerClient = TryCast(result.AsyncState, ServerClient) If client Is Nothing Then Return End If Dim networkStream As NetworkStream = client.NetworkStream Dim read As Integer = networkStream.EndRead(result) If read = 0 Then […]

XmlDocument.Validate不会因多个错误而触发

我正在尝试针对现有的XmlSchemaSetvalidation传入的输入xmlDocument。 以下是代码: public class ValidateSchemas { private bool _isValid = true; public List errorList = new List(); public bool ValidateDocument(XmlDocument businessDocument) { XmlSchemaSet schemaSet = SchemaLoader.Loader(); bool isValid = Validate(businessDocument, SchemaLoader._schemaSet); return isValid; } public bool Validate(XmlDocument document, XmlSchemaSet schema) { ValidationEventHandler eventHandler = new ValidationEventHandler(HandleValidationError); document.Schemas = schema; document.Validate(eventHandler); return _isValid; } private void […]

在可变类型中实现IEquatable

我有一个代表外部物理测量设备的课程。 简化版本如下所示: public class Device { public string Tag { get; set; } public int Address { get; set; } } Tag是用于识别设备的用户定义值。 Address是适配器用于与设备通信的值。 如果两个Device实例具有相同的Address ,则将使用相同的外部测量设备。 我想通过重写Equals并实现IEquatable来模仿代码中的行为(使用Contains和Distinct等方法): public class Device : IEquatable { public string Tag { get; set; } public int Address { get; set; } public override bool Equals(object obj) { return Equals(obj as […]

如何反序列化xml字符串

我试图反序列化一个xml字符串,我没有反序列化对象。 我的xml字符串看起来像 123445 78945 [Serializable()] [XmlRoot(“Cars”)] public class Cars { [XmlArrayItem(“Car”,typeof(Car))] public Car[] Car { get; set; } } [Serializable()] public class Car { [XmlElement(“Id”)] public long Id { get; set; } [XmlArrayItem(“BMW”,typeof(BMW))] public BMW[] BMW { get; set; } } [Serializable()] public class BMW { [XmlElement(“Id”)] public long Id { get; set; } } […]

高频率地创建类的短期新实例是否效率低下?

我有一个C#程序跟踪玩家在游戏中的位置。 在这个程序中,我有一个名为Waypoint(X,Y,Z)的类,它代表游戏地图上的一个位置。 在我产生的其中一个线程中,我一直在检查玩家与某个目标Waypoint的距离,在while(true)循环中相互之后非常快。 在Waypoint类中有一个名为public double Distance(Waypoint wp)的方法,它计算从当前航点到作为参数传递的航点的距离。 问题:每次我想检查玩家到目标航路点的距离时,是否可以为玩家的位置创建一个新的Waypoint? 然后程序可能会在一段时间(真实)循环中反复创建此玩家Waypoint,仅用于计算距离。 PS:我的程序可能需要巧妙地使用资源,因为它运行多个线程,连续的while循环执行各种工作,例如将玩家的X,Y,Z位置发布到UI。 非常感谢!