Tag: c ++

如果没有`typedef`,如何在c#generics中创建相关类型的组?

作为一个来自C ++背景的人,我遇到了以下情况: 鉴于c#不支持typedef,您如何以编程方式关联类型。 也就是说,在C ++中,我可以将相关类型存储为typedef,以便在与模板一起使用时进行检索。 由于缺少typedef ,同样的方法无法以相同的方式在c#中完成。 例如在C ++中我会: template class Thing : public ThingBase { public: bool isRelated( T::Parent & otherThing ) { T::Auxillary aux( “Yes” ); return aux.isValid( otherThing ) && data.isParent( otherThing ); } private: T data; }; 这适用于以下任何一种情况: class SomeClass { public: typedef SomeClassParent Parent; typedef FooAuxillary Auxillary; bool isParent( Parent […]

在IE6 / 7中使用IHTMLElement5 / 6(IE8 / 9)时会发生什么? 它会转向IHTMLElement行为吗?

基本上,IHTMLElement5和IHTMLElement6都是主IHTMLElement的扩展接口,符合以下版本规则: IHTMLElement IE4 IHTMLElement2 IE5 IHTMLElement3 IE5.5 IHTMLElement4 IE6 IHTMLElement5 IE8 IHTMLElement6 IE9 当然,每个新的扩展接口都包含旧成员+自己的新成员,属性等。但是,某些成员(例如.getAttribute)名称相同但已更新。 所以,我的问题是,如果我使用(比方说)IHTMLElement6来声明我的HTML元素并在只安装了IE6的客户端上运行代码,我的对象何时失败并在我设置时保持为Null / Nothing,或者是mshtml.dll足够聪明,可以实现最新情况并默认为IHTMLElement4(实际上是IHTMLElement)行为? 为了澄清括号中的最后一个语句,.getAttribute是在IHTMLElement中添加的,并在IHTMLElement5和IHTMLElement6中更新 – 所以,如果有人只安装了IE6,那么我希望行为默认/恢复为IHTMLElement(不是IHTMLElement4) – 并且如果它不这样做,那么我希望我的代码崩溃。 基本上,我的问题是,究竟会发生什么? 现在,因为我害怕疯了,我只是宣称一切都是IHTMLElement,任何想法? 谢谢。 问题摘要(如果您认为有必要,请阅读,只需要对需要的人进行重新说明):基本上,我希望能够将某些内容声明为IHTMLElement6,以便我可以使用IHTMLElement和IHTMLElement6之间具有相同名称的更新方法(例如.getAttribute)。 这样,在IE9用户上,IHTMLElement6的.getAttribute版本将被利用,同时IHTMLElement的.getAttribute版本仍然适用于(比如说)IE6用户而不会破坏我的代码 – 这就是我的问题所在,当使用IHTMLElement6对象时,即使它是一个IE9接口,IHTMLElement的(IE4接口)版本的.getAttribute会进入/工作还是会得到空引用exception或其他运行时错误? 谢谢大家。 答案越多越好,即使是你的意见并且你不知道这是事实,我想鼓励你仍然发表评论,同时让我们知道你是否知道这是一个事实,或者只是意见/猜猜等等。谢谢。

如何在aspx的循环中传递DataTable值?

我有一个名为dt5的DataTable,有4行。 我试图从dt5传递aspx中的图像的src,但它无法正常工作。 这是我的代码…… <% for (int i = 0; i ” /> ” /> ” />

强制链接到mp3文件以下载/另存为

我的网站上有mp3文件的链接(普通的标签)。 但是对于安装了Apple Quicktime的许多用户来说,它会打开mp3文件,而不是在点击链接时“保存”它们。 您是否可以强制浏览器保存链接而不是使用浏览器首选项? 我可以使用JavaScript或C#.NET,如果可能的话,我正在寻找一个简单的解决方案。

如何为Windows Phone 8应用程序创建图表/图表?

我想在Windows Phone 8应用程序上创建这样的图形。 图表/图表http://img837.imageshack.us/img837/5816/chartgraph.png 我知道有WP8的API和参考资料,但这些都是付费的 。 我正在寻找一个免费的替代品。 如果有人能指出我正确的方向,那将是伟大的!

从C#中的LINQ中提取SQL列扩展属性

我有一个SQL表,每列都有扩展属性。 有没有办法使用Linq2SQL在c#中从LINQ访问这些?

即使在后台执行任务

可能重复: 如何在Windows Phone中在后台运行应用程序? 我正在调查Windows Phone 8 SKD,以获取有关如何创建任务(即精确的FTP写入)的示例,即使应用程序在后台也会定期执行。 该文档将我指向后台代理,因为后台传输服务“仅支持使用HTTP和HTTPS进行传输。不支持FTP”。 我一直在尝试和测试样本,一切都在工作(或多或少),除了无法设置后台代理事件时间。 根据文档“定期代理通常每30分钟运行一次”,并且没有方法/类/构造函数具有时间/日期参数。 您有ScheduledActionService.LaunchForTest(任务,时间),但它仅在调试时使用,而不是在生产中使用,并且可以使MS从市场上拒绝您的应用。 是否有任何解决方案或解决方法让我的代理每分钟开火?

来自UI线程的ReadToEndAsync

如果我从Windows Phone 8上的UI线程调用等待ReadToEndAsync,那么ReadToEndAsync将在什么上下文中工作呢? 任务是否会由UI线程本身排队等待处理,或者新线程是否会完成工作。 基于此: http://blogs.msdn.com/b/ericlippert/archive/2010/11/04/asynchrony-in-c-5-0-part-four-it-s-not-magic.aspx 它似乎将在UI线程上运行。

Topshelf – 基于自定义参数启动线程

我做了一个使用自定义参数的topshelf webservice: string department = null; // *********************Below is a TopShelf code*****************************// HostFactory.Run(hostConfigurator => { hostConfigurator.AddCommandLineDefinition(“department”, f => { department = f; }); //Define new parameter hostConfigurator.ApplyCommandLine(); //apply it Helpers.LogFile(“xxx”, “Got department:”+department); hostConfigurator.Service(serviceConfigurator => { serviceConfigurator.ConstructUsing(() => new MyService(department)); //what service we are using serviceConfigurator.WhenStarted(myService => myService.Start()); //what to run on start serviceConfigurator.WhenStopped(myService => myService.Stop()); […]

从DLL中调用C#中的C ++函数 – 奇怪的参数

我有一个用C ++写的函数和下一个标题: void EncodeFromBufferIN(void* bufferIN,int bufferINSize, unsigned char* &bufferOUT, int &bufferOUTSize); 我已经编辑了像这样的.h和.cpp文件,以便能够通过在C#中导入DLL来调用该函数: **EncodeFromBufferIN.h** extern “C” { __declspec(dllexport) void EncodeFromBufferIN(void* bufferIN, int bufferINSize, unsigned char* &bufferOUT, int &bufferOUTSize); } **EncodeFromBufferIN.cpp** extern void EncodeFromBufferIN(void* bufferIN, int bufferINSize, unsigned char* &bufferOUT, int &bufferOUTSize){ // stuff to be done } 但现在我的问题是我不知道如何在C#中调用该函数。 我在C#中添加了下一个代码,但不确定如何将参数传递给函数。 [DllImport(“QASEncoder.dll”)] unsafe public static extern void EncodeFromBufferIN(void* […]