Tag: c ++

在Webbrowser控件中使用本地图像

我在我的Wp7应用程序中使用Web浏览器控件,但我似乎无法在Web浏览器中放置App目录中的图像。 我将一些图像放在与.cs和.xaml文件相同的目录中的文件夹中。 现在我尝试将它们放在webbrowser控件中,但我似乎无法让它工作。 上面两个显然不起作用,我的猜测应该是这样的: “SilverlightApplication”和“组件”应该被其他东西取代,但我不知道:(

使用自定义解析程序跳过空值

我想使用automapper在我的公共数据协定和我的数据库模型之间进行映射。 我创建了一个自动完成所有契约的类创建映射。 我唯一的问题是,如果值不为null,我只想将合同中的值映射到数据库模型。 我在这里看了其他问题但是看不到使用自定义解析器的示例。 这是我的一些代码 var mapToTarget = AutoMapper.Mapper.CreateMap(contract, mappedTo); foreach (var property in contract.GetProperties().Where(property => property.CustomAttributes.Any(a => a.AttributeType == typeof(MapsToProperty)))) { var attribute = property.GetCustomAttributes(typeof(MapsToProperty), true).FirstOrDefault() as MapsToProperty; if (attribute == null) continue; mapToTarget.ForMember(attribute.MappedToName, opt => opt.ResolveUsing() .ConstructedBy(() => new ContractToSourceResolver(new MapsToProperty(property.Name, attribute.SourceToContractMethod, attribute.ContractToSourceMethod)))); } private class ContractToSourceResolver : ValueResolver { private MapsToProperty Property […]

非常频繁地更新datagridview

我在C#中合理的时间刷新我的DataGridView时遇到了麻烦(我是新手,我已经习惯了java …)。 我通过网络获取数据,每秒发送20个包。 我想解析数据并将其放在DataGridView中。 我还想调整DataGridView更新的时间间隔,从0.1秒到1分钟。 所以我创建了一个额外的线程,它读取包并将它们解析为一个数组。 我也有一个Timer,我用它来改变Interval。 在每个计时器滴答声中,我将DataSource重新分配给DataGridView。 有趣的是,当我这样做时,即使我将计时器设置为0.1秒,它也只会被触发一次。 如果我不刷新DataGridView,它会被触发每秒10次,就像它应该的那样。 所以我假设我更新DataGridView的方法太耗时。 但是我需要做些什么来提高它的效率,所以我可以每秒更新10次而没有任何问题? 这是我使用的代码: public MyForm() { InitializeComponent(); timer = new System.Windows.Forms.Timer(); timer.Interval = (1 * 1000); // 1 secs timer.Tick += new EventHandler(timer_Tick); timer.Start(); readNetworkValues = true; networkReader = new Thread(() => { Thread.CurrentThread.IsBackground = true; byte[] data = new byte[1024]; IPEndPoint ipep = new […]

entity framework – 存储过程返回值

我试图获取存储过程的返回值。 以下是此类存储过程的示例: select Name, IsEnabled from dbo.something where ID = @ID if @@rowcount = 0 return 1 return 这是一个简单的选择。 如果找到0行,我的结果集将为null,但我仍然会有一个返回值。 这是一个不好的例子,因为这是一个选择,所以我确定我能找到是否返回了0行。 但是,在插入,删除或其他调用中,我们需要此返回值来了解是否存在问题。 我一直无法找到获得此返回值的方法。 我可以得到输出值,我可以得到结果集,但没有返回值。 如果我手动调用SQL,或者即使我使用entity framework运行SqlCommand ,我也可以获得返回值,但这不是我想要做的。 有没有人能够使用Entity Framework从存储过程中获取返回值? 谢谢您的帮助!

带有C ++布尔函数的C#DllImport无法正确返回

我在C ++ DLL中有以下function extern “C” __declspec(dllexport) bool Exist(const char* name) { //if (g_Queues.find(name) != g_Queues.end()) // return true; //else // return false; return false; } 在我的C#类中,我有以下内容: [DllImport(“Whisper.dll”, EntryPoint=”Exist”, CallingConvention=CallingConvention.Cdecl)] public static extern bool Exist(string name); 然而,每当我调用我的函数时,它总是返回true,即使我注释掉了我的小函数并使其返回false。 我觉得我的调用约定或P / Invoking我的DLL的任何其他问题都有问题,可能与字符串和const char *相对应,但是现在我完全无能为力。 我究竟做错了什么? 为什么它返回true而不是false? 编辑:我已经发现这与const char *或字符串无关,因为问题仍然存在于空函数中。 我试过改变Cdecl和StdCall之间的调用约定,但都没有正常工作。 我还设法调试我的DLL,它被正确调用,确实返回false,但一旦回到C#,它就会成真。 更改CharSet也没有任何效果。 我已经确保每次都为我的C#程序提供最新版本的DLL,所以这不应该是一个问题。 再一次,当我实际上返回false时,我完全不清楚为什么结果是真的。 EDIT2: SOReader为我提供了一个修复另一个重要问题的建议,请参阅我的评论。 可悲的是,它并没有解决退货问题。 EDIT3:我已经得出结论,将Exist(bool)的返回类型更改为(int)突然使它返回正确的数字(true […]

Windows服务无法在Windows 7中获取屏幕截图

我有一个获取屏幕截图的Windows服务。 但它只创造了黑屏。 我知道这是因为会话0隔离。 我在互联网上搜索,无法找到任何批准的解决方案来解决这个问题,任何工作的想法都会非常好。 1-有没有办法更改Windows服务的会话并获取其他用户会话的桌面屏幕,如会话1,会话2? 2-有没有办法启动一个控制台应用程序,该应用程序在Windows服务的会话0以外的另一个会话中运行?

获取和设置函数是否受C ++程序员的欢迎?

我原来是来自C#世界,我正在学习C ++。 我一直想知道在C ++中获取和设置函数。 在C#中,这些使用非常流行,而像Visual Studio这样的工具通过使它们变得非常容易和快速实现来促进使用。 但是,在C ++世界中似乎并非如此。 这是C#2.0代码: public class Foo { private string bar; public string Bar { get { return bar; } set { bar = value; } } } 或者,在C#3.0中: public class Foo { get; set; } 可能人们会说,那是什么意思呢? 为什么不创建一个公共字段,然后在需要时将其设置为属性; 老实说,我其实不确定。 我只是出于良好的做法,因为我已经看过很多次了。 现在因为我已经习惯了这样做,我觉得我应该把习惯延续到我的C ++代码,但这真的有必要吗? 我没有像C#那样频繁地完成它。 无论如何,这是我收集的C ++: class Foo { public: std::string […]

在C ++代码中使用C#dll

我需要在我的C ++代码中集成这个C#dll 。 我想调用一些用C#编写的函数来自dll,其余代码用C ++编写。 什么是最简单,最快捷的方法? 该程序仅在Windows上执行。

如何将包含可变大小数组的结构编组到C#?

我如何编组这个C ++类型? ABS_DATA结构用于将任意长的数据块与长度信息相关联。 Data数组的声明长度为1,但实际长度由Length成员给出。 typedef struct abs_data { ABS_DWORD Length; ABS_BYTE Data[ABS_VARLEN]; } ABS_DATA; 我尝试了以下代码,但它不起作用。 数据变量总是空的,我确定它有数据。 [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Ansi)] public struct abs_data { /// ABS_DWORD->unsigned int public uint Length; /// ABS_BYTE[1] [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 1)] public string Data; }

使用javascript进行自定义目的

我正在写一个光线跟踪器作为我的完整3D引擎的一部分。 我打算使用javascript作为脚本语言而不是编写自己的脚本语言。 问题是我该如何使用它? 顺便说一下,光线跟踪器和UI是用C#编写的。