Tag: c ++

从c ++ com加载项调用C#

我有一个用C ++编写的COM加载项(不是C ++ / CLI)。 我想从这个C ++ com库中调用一个C#库对象/方法。 我想这是CCW的图片,我现在正在阅读。 从你的经历中有没有快速指向这些东西? 另外,我在我的Com加载项中有一个方法,我希望我的C#库代码可以调用 – 即方法指针调用。 你能帮我告诉我怎样才能做到这一点 – 即我如何将方法指针传递给C#代码,以便以后可以调用它。 谢谢。

在NHibernate的queryover中使用OR Clause

我正在使用Nhibernate。 我正在通过queryover方法编写查询。 我能够编写和编写如下面的代码。 它的工作正常。 db.QueryOver(Of Users)() .Where(Function(x) x.Role = “Guest”) .And(Function(x) x.Block = 0) .And(Function(x) x.APPID = appId) .List(); 但我想使用Or子句代替And ,或两者的组合。 我该如何实现呢。 谢谢

保护Windows服务免受不受信任的用户的攻击

如何防止用户篡改,停止或崩溃在后台工作的Windows服务可能需要一段时间才能完成? 收到停止请求后,服务应等到工作完成后再停止。 有服务的CanStop标志,但我不知道如何响应OnStop消息。 如果用户确实尝试使服务崩溃,我该如何防止进一步篡改? 编辑:从家长控制到任何后台进程的广义问题。

winmobile中带有文本字段的自定义对话框

我希望有一个简单的自定义对话框,如消息框,具有标签和TextBox。 如果有一种简单的方法可以做到这一点,抱歉! 我真的不太熟悉对话的东西。 谢谢你的帮助,伙计们!

WinAPI / WPF:仅为应用程序设置系统光标

我有一个应用程序,其UI是自定义呈现主题。 我还想添加新的非默认游标(如用户打算调整窗口大小时resize游标)以匹配该主题。 使用WinAPI函数SetCursor我只能更改应用程序的默认指针,但这还不够,所以我查找了SetSystemCursor ,它运行得很好。 问题是:后一版本永久地更改了系统范围内的游标,但我只希望它们仅针对我的应用程序进行更改。 我考虑过在复制之前的游标之前执行SetSystemCursor并在应用程序出口处重新设置它们,但即使我实现了终止处理程序,如果进程例如崩溃,也可能无法调用它。 只要应用程序正在运行,游标仍然会在系统范围内进行更改。 特别是对于resize-cursors,我可以放弃窗口样式,创建一个无边框窗口,并自己渲染/实现resize的夹点和逻辑(然后我可以挂钩鼠标hover事件),但这真的只是我的最后一次度假胜地 – 在做这个繁琐的任务之前,我想知道是否有可能实现我的目标…… 对于任何感兴趣的人:UI使用WPF呈现,但WPF也不提供此function(同样,他们拥有它,但仅用于默认指针)。 如果必须的话,我不用担心使用WinAPI或其他“低级别”电话,但目前似乎没有一个能满足我的需求:( 因此,如果有人知道如何为我的应用程序更改WPF或WinAPI中的其他系统游标(不是默认指针)而不必为我的窗口实现自定义游标逻辑,那么你就可以度过我的一天。

使用JavaScript构建MVC应用程序的相对URL

我无法让C#和JavaScript / jQuery在这里玩得很好。 我有一个淘汰视图模型,普通的旧javascript对象…它的一个属性/方法触发了.ajax()调用,而url参数是使用它的一些其他属性值(javascript变量)构建的。 这完全包含在JavaScript中时可以正常工作,但是当作为应用程序部署到IIS时,相对路径会被清除。 在MVC3中,我通常会使用类似@Url.Action东西,让服务器端构建地址……但同样,诀窍是C#不知道更改的javascript值。 码: var viewModel = { vendors: ko.observableArray([]), count: ko.observable(10), page: ko.observable(1), filterText: ko.observable(“”), submit: function () { $.ajax({ // works fine, until deploy when it is no longer a site relative URL url: ‘vendors/’ + viewModel.count() + ‘/’ + viewModel.filterText(), // does not work, because C# is unaware of […]

存储过程返回int而不是结果集

我有一个包含动态选择的存储过程。 像这样的东西: ALTER PROCEDURE [dbo].[usp_GetTestRecords] –@p1 int = 0, –@p2 int = 0 @groupId nvarchar(10) = 0 AS BEGIN SET NOCOUNT ON; DECLARE @query NVARCHAR(max) SET @query = ‘SELECT * FROM CUSTOMERS WHERE Id = ‘ + @groupId /* This actually contains a dynamic pivot select statement */ EXECUTE(@query); END 在SSMS中,存储过程运行正常并显示结果集。 在使用Entity Framework的C#中,它显示返回一个int而不是IEnumerable ? private […]

托管托管代码和垃圾回收

我有一个C ++进程外COM服务器,它承载了很多C#代码,以支持C ++ COM对象公开的API。 由于各种原因,我正在考虑取消我的解决方案的C ++部分。 但是,由于我无法控制的限制,我必须保留进程外的COM服务器。 微软确实在这里有一个典型的例子。 看看这个例子,我有些不明白。 在消息循环开始之前,会创建一个计时器,每隔5秒调用GC.Collect。 我能找到的唯一提到的就是确保在合理的时间范围内释放COM对象。 我对此有点困惑…我的C ++主机当前是否自动调用GC.Collect? 我当然不是这样做的。 然而,我正在创建托管对象(COMVisible(true)作为C ++代码中的COM对象。这是否意味着我现在应该每5秒调用一次GC.Collect?如果没有,为什么我需要在这个新的C#中调用它是否可以弥补在普通C ++应用程序中清理未引用的COM对象的自动进程?(我假设在消息循环期间的某个时间发生了这种情况)。 每5秒调用一次GC.Collect似乎可能是一个坏主意。 我担心吗? 是否有其他方法可以达到相同的效果? 我使用的是.NET 4.5和Visual Studio 2012。

在Windows Phone 8.1 Runtime中读取项目文件夹中的文本文件

我希望在第一次启动应用程序时将我项目的根文件夹中的一个文件.txt读入我的数据库,但我不知道该怎么做。 任何人都知道我该怎么做,请帮助我……谢谢 我在Windows Phone 8.1 Runtime中工作。

在MySql中读/写unicode数据

我正在使用MySql DB,并希望能够读取和写入unicode数据值。 例如,法语/希腊语/希伯来语值。 我的客户端程序是C#(.NET framework 3.5)。 如何配置我的数据库以允许unicode? 以及如何使用C#从MySql读取/写入unicode值? 更新时间:09年9月7日 好的,所以我的Schema,Table&columns设置为’utf8’+ collat​​ion’utf8_general_ci’。 我打开连接时运行’set names utf8’。 到目前为止这么好……但是,仍然将值保存为’??????? “ 有任何想法吗? 解决方案! 好的,所以对于C#客户端读取和写入unicode值,必须包含在连接字符串中 :charset = utf8 例如:server = my_sql_server; user id = my_user; password = my_password; database = some_db123; charset = utf8; 当然你也应该把相关的表定义为utf8 + collat​​ion utf8_bin。