Tag: c ++

是否可以在C ++中序列化和反序列化对象?

我们知道c ++也是一种面向对象的编程语言,其中大多数东西都是像java这样的对象。 所以想知道Serialize和deserializfunction是否可以在c ++中使用,我们在java中也可以使用? 如果是,如何实现? 在java中我们使用Serializable接口来说明这种类型的对象可以被序列化和反序列化。 那么在c ++中如何? 出于好奇,它在c#和java中一样吗?

C#COMponent引发的exception消息是否通过interop传递给C ++?

如果我在C#类中实现一个COM接口,它将从C ++模块调用,那么在发生故障的情况下,C#代码应抛出exception; 这将由interop层编组为HRESULT故障代码。 但是,传递给Exception构造函数的任何消息文本(或其他信息)是否也可用于调用C ++代码? 如果是这样,怎样才能获得哪种API方法? 例如,如果在我的C#代码中我throw new ArgumentException(“The email address is invalid”)我将除了我的COM HRESULT为E_INVALIDARG但是我的自定义文本将被编组或者我是否只能查找E_INVALIDARG的文本描述?

用C ++编写事件并用C#处理它们

我有一台带有一些数字I / O引脚的工业计算机。 制造商提供了一些C ++库和示例来处理引脚状态更改。 我需要将这些事件集成到C#应用程序中。 AFAIK执行此操作的最简单方法是: 为从DIO引脚发出中断时触发事件的制造商库创建托管C ++ / CLI包装器。 引用包装并处理C#部分中的事件,因为它们是正常的C#事件。 我试图用一些没有运气的模拟对象来完成这项工作。 从文档中,函数EventHandler应该完成我案例中的大部分“脏工作”。 以下有关旧线程和MSDN文档中的EventHandler示例的信息,我最终得到了以下测试代码: C ++ / CLI using namespace System; public ref class ThresholdReachedEventArgs : public EventArgs { public: property int Threshold; property DateTime TimeReached; }; public ref class CppCounter { private: int threshold; int total; public: CppCounter() {}; CppCounter(int passedThreshold) { threshold […]

在C#中加载C ++ DLL

我试图使用在C ++中编写但我的应用程序在C#中的DLL DLL来自另一家公司,但他们为他们的软件提供了SDK。 他们给出了如何在C ++中加载DLL的示例,但我需要将其适应C#。 以下是如何在C ++中执行此操作的说明 MarkEzd.dll文件是动态链接库。 MarkEzdDll.h是MarkEzd.dll中exports函数的头文件 MarkEzd.dll的调用方式是显式链接。 开发人员需要通过调用Windows API函数来加载和释放MarkEzd.dll。 步骤如下。 调用Windows的API函数LoadLibrary()动态加载DLL; 调用Windows的API函数GetProcAddrress()来获取DLL中函数的指针,并使用函数指针完成工作; 当您不使用DLL或程序结束时,调用Windows的API函数FreeLibrary()来释放库。 以下是他们提供的示例。 步骤2.用于调用markezd.dll的程序软件。 a)第一步:动态加载MarkEzd.dll HINSTANCE hEzdDLL = LoadLibrary(_T(“MarkEzd.dll”)); b)第二步:获取要调用的函数的指针 lmc1_Initial=(LMC1_INITIAL)GetProcAddress(hEzdDLL, _T(“lmc1_Initial”)); lmc1_Close=(LMC1_CLOSE)GetProcAddress(hEzdDLL, _T(“lmc1_Close”)); lmc1_LoadEzdFile=(LMC1_LOADEZDFILE)GetProcAddress(hEzdDLL,_T(“lmc1_LoadEzdFile”)); lmc1_Mark=(LMC1_MARK)GetProcAddress(hEzdDLL,_T(“lmc1_Mark”)); c)第三步:调用该函数 1)初始化lmc1板: lmc1_Initial() 。 2)打开test.ezd: lmc1_LoadEzdFile(_T(“test.ezd”)) 。 3)调用lmc1_Mark()进行加工: lmc1_Mark() 。 4)关闭lmc1板: lmc1_Close() 。 d)第四步,发布markezd.dll: FreeLibrary(hEzdDLL) 贝娄是命令的描述。 lmc1_Initial 意图:初始化lmc1控制板 定义: int lmc1_Initial(TCHAR* strEzCadPath, BOOL bTestMode, HWND […]

如何从代码中为Windows Phone 8.1(通用)应用程序添加/删除默认磁贴/辅助磁贴?

n windows phone 8 silverlight应用程序我们可以在代码中添加/删除tile,如下所示 ShellTile.Create(tileUri, tileData, true); 我们可以根据下面的Uri获取瓷砖 ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(“/”)); 我们如何在Windows Phone 8.1(通用)应用程序中做同样的事情? 我无法获得清晰的信息或样本。

Windows 7中未经授权的访问exception

我有一个应用程序在启动时读取许可证文件。 我的安装在应用程序的Program Files中创建文件夹,创建许可证文件夹并将许可证文件放在那里。 但是,当我尝试运行该应用程序时,它需要读取/更新许可证文件。 当我尝试这样做时,我得到“未经授权的访问例外”。 我以管理员身份登录,手动运行该程序。 知道为什么即使路径正确我也无法访问该文件? 但是在安装中它创建文件和文件夹就好了吗? 我有MyApplication.exe,我的许可证阅读器位于一个名为MyApplicationTools的独立DLL中。 我正在读取/写入许可证文件,如下所示: //Read StreamReader reader = new StreamReader(path + “license.lic”); //Write StreamWriter writer2 = new StreamWriter(path + “License.lic”); string str = Convert.ToBase64String(sharedkey.Key); writer2.WriteLine(str); writer2.Close(); 谢谢

XXX.exe中发生了未处理的“System.ExecutionEngineException”类型的exceptionexception

我有一个用C ++编写的DLL文件。 我尝试在我的c#代码中使用C ++ DLL。 正确调用C ++方法,但在完成进程后会出错。 例外细节: completed.System.ExecutionEngineException未处理Message =抛出了类型’System.ExecutionEngineException’的exception。

C# – 使用HTMLAgilityPack获取JavaScript变量值

我目前有2个JavaScript变量,我需要从中检索值。 HTML由一系列没有id / name属性的嵌套DIV组成。 是否可以使用HTMLAgilityPack从这些变量中检索数据? 如果是这样的话,我怎么会这样做,如果不是什么需要,正则表达式? 如果是后者,请帮我创建一个允许我这样做的正则表达式。 谢谢。 variable1 = “var1”; variable2 = “var2”;

在Web Api控制器中将JSON反序列化为字典

我有这样的JSON字符串: ‘{“1″:[1,3,5],”2″:[2,5,6],”3”:[5,6,8]}’ 我想将其发送到Web Api控制器而不使用ajax请求更改: $.ajax({ type: “POST”, url: “Api/Serialize/Dict”, data: JSON.stringify(sendedData), dataType: “json” }); 在Web Api我有这样的方法: [HttpPost] public object Dict(Dictionary<int, List> sendedData) { //code goes here return null; } 总是sendedData == null. 换句话说:我不知道如何将JSON反序列化为(Dictionary<int, List> 。 谢谢你的答案。

SqlQuery进入字段?

我有一个工作得很好的实体,但后来我需要处理另一个来自另一个表的属性。 我没有能够创建一个View,所以我想只添加一个[NotMapped]字段然后使用Context.Database.SqlQuery来执行我的自定义语句并返回所有正常字段和这个新字段。 换句话说,这样的事情: public class Employee { public int EmployeeId { get; set; } public string EmployeeName { get; set; } [NotMapped] public string CustomerName { get; set; } } public List GetEmployees() { using (MyContext context = new MyContext()) { return context.Database.SqlQuery(“select E.EmployeeId, E.EmployeeName, C.CustomerName from Employee E left join Customer C on E.CustomerId […]