从System.String转换为PCTSTR
我必须从System.String(C#)转换为PCTSTR,该PCTSTR将键入_nullterminated const char* 到目前为止,我找不到任何可以告诉我如何做到这一点的东西. 很多示例可以从系统:: string(C ++/CLI)转换,但是我在System.String(C#) 上找不到任何内容 我在Visual Studio 2005工作. 解决方案 当PCTSTR是const char*的typedef时,使用元帅. 当PCTSTR是const wchar_t*的类型时,请使用元帅.StringToHglobaluni. 在这两种情况下,都致电完成记忆后释放记忆;尽管您使用了C#,但有问题的内存分配是不受管理的,因此,如果您不正确清洁,则不符合垃圾收集的资格, 泄漏. 其他解决方案 您应该使用元帅静态类​​ var str = "Hello world" var marshalledStr = Marshal.Stri
2 2024-04-26
编程技术问答社区
在C#中,如何改变文本框中新添加的文本的颜色
考虑使用C#vs 2005构建的Windows应用程序在多衬文本框中显示某些内容.现在,当我添加一些新文本时,它应该以不同的颜色出现.即,我需要区分运行项目时显示的文本以及在文本框中输入的文本.我该怎么做.? 解决方案 普通我怀疑您需要使用> RichTextBox 而不是.然后,您可以设置 a>属性要更改当前插入点处插入的当前选择的文本或文本的颜色. 我应该补充一点,经过几次快速实验,我发现设置选择颜色,然后立即以编程方式附加文本并不像我希望的那样直接工作.也许另一个答案可以解释原因:)但是,用户输入的文本肯定会立即以新颜色出现...
2 2024-04-26
编程技术问答社区
SSIS包失败,因为 "脚本任务失败,因为脚本没有被预编译"
我开发了一个非常直接的SSIS软件包(在VS2005 w/.net Framework v 2.0.50727 SP2中),该软件包获取电子邮件列表,启动一个for-each loop容器,然后执行脚本任务以检索用户具体数据并将其通过电子邮件发送给用户.当我在开发盒上运行它时,一切都可以正常运行,并尽可能地运行.但是,当我将软件包部署到运行的生产服务器时(Microsoft SQL Server 2005-9.00.5000.00(x64)Windows NT 5.2上的标准版(64位)(构建3790:Service Pack 2))任务失败. 原始错误消息是: 用户执行:xxxxx. Microsoft(R)SQL Server执行软件包实用程序版本9.00.5000.00用于64位代码:0x00000009来源:Packagename说明:该任务无法在64位环境中执行,因为脚本未预先编译.请打开选项,以预编辑脚本.结束错误...错误dtexec:软件包执行返回dtser_fa
8 2024-04-25
编程技术问答社区
如何在Visual Studio 2005中以编程方式将水晶报表公式从水晶语法改为基本语法?
我想在许多报告中进行编程更改公式,例如 A>,但我还需要更改晶体语法和基本语法之间的公式.我看不到任何方法可以在对象模型中执行此操作.有可能吗? 即.我有一个称为"时期"的公式,该公式已在许多报告中存在,目前在Crystal语法中定义.我想将公式设置为基本语法,并提供公式的更新文本.我不需要自动将当前定义从晶体转换为基本.我已经有了新的公式文本. 如果我简单地浏览所有报告,打开它们,然后设置FormulaFieldDefinition的文本属性,则该公式仍设置为" Crystal语法",并且无法正确评估.目前,我唯一的解决方案是手动打开每个报告,编辑公式,将下拉列表从水晶语法更改为基本语法. 解决方案 我相信,@codebymoonlight确认这不可用.因此,对于我和我乘坐同一条船上的任何人都有许多报告要更新:享受手动过程,希望您永远不必退缩! 其他解决方案 this http://msdn .microsoft.com/en -us/library/ms2
0 2024-04-25
编程技术问答社区
以编程方式触发 ReportViewer 工具栏控件
有人知道如何触发报告视图(VS2005)工具栏内的控件的方法吗? 我特别有兴趣创建两个按钮,可以单击这些按钮,以在显示的报告中向前和向后.我知道默认工具栏为我提供了此功能,但是向前和向后按钮的大小太小,无法进行触摸屏.这就是为什么我考虑添加两个自定义按钮的原因,这些按钮可能能够触发工具栏前后按钮调用的事件的原因. 谢谢. 解决方案 这是VB.NET中的一个示例,如何编辑ReportViewer组件的工具栏,例如在下拉列表中添加图像或您喜欢的任何内容: Private Sub AddImgRVToolBar() Dim ts As ToolStrip = Me.FindToolStrip(Of ToolStrip)(Me.ReportViewer1) If ts IsNot Nothing Then Dim exportButton As ToolStripDropDownButton = TryCast(ts
14 2024-04-25
编程技术问答社区
我怎样才能以编程方式构建对象引用?
让我们说我有三个文本框:textbox1,textbox2,textbox3.通常,如果我想更改文本,例如,我会添加textbox1.text =" whthing"等等.对于我现在正在做的事情,我想喜欢(TextBox&" i").显然,这不是我需要使用的语法,我只是将其用作我需要做的示例.那我该怎么做呢?我这样做的主要原因是用循环减少代码. 请记住,我实际上并没有更改我简单地以此为例的文本框的文本. 解决方案 动态创建文本框时,您可以使用一系列文本框,这要容易得多. 但是,也可以使用反射: var textBoxes = GetType().GetFields( BindingFlags.NonPublic | BindingFlags.Instance ) foreach( var fieldInfo in textBoxes ) { if( fieldInfo.FieldType == typeof( TextBox ) ) {
2 2024-04-23
编程技术问答社区
ODAC & C#-TNS: 发生连接超时-仅通过VS2005调试器进行连接
我是甲骨文的新手,我面临的问题.当我从IDE -Visual Studio 2005运行应用程序时,数据库连接的建立平稳,但是当我运行应用程序的安装版本时,DB连接失败,我将获得TNS:Connect Timeout发生错误. . 我尝试使用sqlnet.ora和在线找到的类似解决方案,但我无法解决问题.我想知道为什么会发生这种情况,因为通过IDE运行并通过安装运行的应用程序在同一PC上.我确保正确编辑了tnsnames.ora文件,并且可以通过直接在Visual Studio上运行的应用程序进行连接. public bool connectToDatabase(string dbConnStr) { try { databaseConnection = dbConnStr; OracleConnection dbConn = new OracleConnection(databaseConnection);
6 2024-04-23
编程技术问答社区
如何使C# COM DLL等同于ATL COM C++
嗨,我正在尝试使用C#和Visual Studio 2005 开发com 首先,我完成了接口" csharpserver.cs" using System; using System.Runtime.InteropServices; namespace CSharpServer { [ComVisible(true)] [Guid("DBE0E8C4-1C61-41f3-B6A4-4E2F353D3D05")] public interface IManagedInterface { int PrintHi(); } [ComVisible(true)] [Guid("C6659361-1625-4746-931C-36014B146679")] public class InterfaceImple
2 2024-04-23
编程技术问答社区
Visual Studio 2010。无法找到元数据文件".../Debug/Graph.dll"。
我采用了在Visual Studio 2005中开发的解决方案,并试图在Visual Studio 2010 Express中构建解决方案.未找到的文件是.dll文件.该项目用C#编写.我在网上看到了几个有类似问题的人,但是我还没有找到任何有用的答复.我怀疑它可能与.NET框架有关,但是我检查了新机器上的版本,发现它们是相同的.任何可能指向正确方向的事情都会很棒,谢谢. 解决方案 这对我有用,但是我正在使用VS 2013: 单独清洁每个项目(右键单击>清洁) 构建每个 单独项目(右键单击>构建) 建立启动项目 (解决方案) 由于某种原因,清洁解决方案的效果与单独清洁每个项目不同.
0 2024-04-23
编程技术问答社区
C#: 向/从文件中导入/导出设置
将应用程序内部设置从应用程序内部导入/导出应用程序内部设置的最佳方法是什么? i具有settings.settings文件,与设置文件相关的winform ui,我想导入/导出设置,类似于Visual Studio导入/导出设置功能. 解决方案 如果您使用的是settings.settings文件,则将其保存到配置文件.通过更新设置后调用yournamespace.properties.settings.save()(),它们将保存到配置文件中. 但是,我不知道您所说的"多组设置"是什么意思.如果设置是用户设置,则每个用户都有自己的设置集.如果您对单个用户有多组设置,则可能不应使用.settings文件.相反,您需要使用数据库. 其他解决方案 您可以使用绑定到表单的数据集.您可以保存/还原. 其他解决方案 您可以只使用部分,或者是出于特定原因突破到其他文件?
2 2024-04-23
编程技术问答社区
预处理C#-检测方法
我需要能够将许多C#文件作为项目的预构建步骤,检测方法的开始,然后在任何现有代码之前插入方法开始时生成的代码.但是,我在检测方法的打开时遇到问题.我最初尝试了一个正则表达式匹配,但最终得到了太多的误报. 我会使用反射,但是MethodInfo类并未引用原始源中的点. 编辑:我在这里真正要做的是支持有关方法的前条件,该方法由该方法上的属性确定.我最初的想法是我可以寻找方法的开始,然后插入生成的代码以处理前条件. 有更好的方法吗?如果需要,我愿意创建一个视觉工作室. 这是一个.NET 2.0项目. 欢呼 解决方案 postSharp或 mono.cecil href =" http://www.mono-project.com/cecil%3afaq" rel =" nofollow noreferrer">清洁 而无需撰写C#Parser,这不太可能是核心业务业务为你... 没有对后塑的任何结果,但会猜测它比单声道更合适地实施前提条件或AOP.另
6 2024-04-23
编程技术问答社区
在静态常量成员初始化时
我有这样的代码: class A { public: unsigned long a; static const unsigned long b = sizeof(a); // "error C2327: 'A::a' : is not a type name, static, or enumerator" in VC++ }; 我在VC ++中出现了编译器错误,而IAR中没有错误. 哪个编译器是对的,C ++ Standart对此说了什么? 解决方案 您的MSVS版本很旧,因此,基于此,假设它们默认为C ++ 03,则它们是正确的,可以拒绝您的代码.我将引用 9.4 [class.static] (强调矿山) 如果在静态的定义中使用了不合格的ID(5.1) 成员遵循会员的声明器-ID和名称查找(3.4.1) 发现不合格的ID是指静态成员,枚举者, 或成员类的嵌套类型(或 成员的课程),不合格的ID被转变为合格的ID 嵌套名称的表达式名称类别范
6 2024-04-22
编程技术问答社区
C#视觉上子类化datagridview控件VS2005
也许这很愚蠢,但是我在VS2005 C#中的DataGridView控件子类有问题.我知道我几乎可以通过做 来亚班级 public class MyDataGridView : DataGridView {} 没问题,我把想要全球适用的某些内容/元素提出了.现在,我使用此GridView并将其放入自定义用户控件中,该控制也将包含其他控件.因此,我有视觉设计师创建的东西.我在其中抓住了一些按钮,标签和我派生的" mydatagridview". public partial class MyCompoundDGVPlus : UserControl 所以,现在,我可以在视觉上绘制,移动,根据需要更改各种设置,没问题. 现在,我希望这个" mycompounddgvplus"类作为其他类别的基础,我将操纵设置特定,但希望所有人都具有相同的外观/感觉,而其他相似的流程,因此派生. 我什至已经将"修饰符"设置设置为公共,因此我应该能够在任何派生级别上修改控件的任何属性.
10 2024-04-22
编程技术问答社区
COM注册和GAC
我有一个Web项目,一个C#库项目和Visual Studio 2005中的Web设置项目.Web Project需要C#库需要在GAC中注册.这很简单,只需将GAC文件夹添加到设置项目中,然后在其中删除C#库的主要输出即可. C#库还需要注册COM Interop.我单击"选择GAC文件夹中的主输出",然后将寄存器属性更改为VSDRPCOM.我构建设置项目并运行它,但DLL永远不会为com注册. 这对我来说并不令人惊讶.我一直不得不添加一个安装程序类,该课程具有使用registrationservices.RegisterAssembly的自定义操作,以正确注册我的DLL中的com.因此,我将这种解决方法应用了多年以来,我已经接受了多年的情况.现在,我发现设置项目的GAC文件夹中分配给主输出的自定义操作阻止了设置项目均匀构建. 我一直觉得自己正在黑客入侵thig,以获取.net和com来播放设置和部署项目.解决我的问题的正确方法是什么? 解决方案 在com使用:re
10 2024-04-22
编程技术问答社区
在C#.NET中,如何在关闭整个应用程序后结束进程?
i有一个.NET 2005(C#)桌面应用程序,其中有登录表单和MDI表单,然后具有多个子形式.所有其他形式仅以MDI形式打开. 用户登录后,我隐藏了登录表单,然后显示MDI表单,但是当我关闭MDI表单时,我的申请过程不会结束,因为登录表单仍然隐藏.我希望,当用户关闭MDI表单时,整个应用程序应关闭(本质上,该过程不应在任务管理器中显示),因为如果每次用户都关闭并重新打开应用程序并登录,则它将创建一些性能问题. 我正在做以下类似的事情: //my login validation script, //after successful login this.Hide(); if (globalData.ObjMdiMain.IsDisposed) { globalData.ObjMdiMain = new mdiMain(); } globalData.ObjMdiMain.Show(); globalData是我的静态类,其中我创建了整个应用程序所需的
2 2024-04-22
编程技术问答社区
VS 安装项目: 安装时卸载其他组件
我正在创建一个Visual Studio设置项目.我想从组件的安装中卸载系统中的另一个组件.另一个组件是从我自己的设置使用Visual Studio创建的. 创建的. 当前我从组件的安装操作中调用其他组件的卸载时,我会得到错误代码:1618 (another MSI already running). 有人可以建议我解决这个问题的另一种方法吗? 解决方案 如果您不需要实际运行其他组件的卸载,则可以使用自定义操作删除打算替换的文件/文件夹. 使用自定义操作将迫使您执行卸载器为您做的所有清理操作. 是您要替换某些东西,还是只是试图卸载某些东西,因为安装了完全不同的东西? 我还阅读了菲尔·威尔逊(Phil Wilson)的一些文章,这些文章对自定义行为有所帮助: 其他解决方案 我遇到了一个类似的问题,需要几个安装来一起运行,无法递归运行MSIEXEC.我使用的解决方案是将安装程序与一个可以运行MSIEXEC的脚本捆绑在一起以安装/卸载旧软件包,然后再
2 2024-04-22
编程技术问答社区
对象初始化器在List<T>中不起作用
List oUpdateCar = new List(); oUpdateCar.Add(new Car()); oUpdateCar[0].name = "Color"; oUpdateCar[0].value = "red"; oUpdateCar.Add(new Car()); oUpdateCar[1].name = "Speed"; oUpdateCar[1].value = "200"; 上面的代码正在工作,但是当我创建列表时,我想初始化它, List oUpdateCar = new List { new Car{ name = "Color"; value = "red";} new Car{ name = "Speed";
0 2024-04-22
编程技术问答社区
将C#项目转换成C++项目的Dll
我是C#的新手.我目前正在学习C#代码.我的最终目标是将C#项目转换为DLL,以便可以在C ++ EXE中使用它.我正在使用VS2005. 我想知道是否有可能,如果如此,我将感谢您在此方面的指导和建议, 请回复, 解决方案 为什么不将com对象从托管的lib中取出,然后从不受管理的C ++代码中调用它?如果您知道如何在C ++中管理COM. http://msdn.microsoft US/Library/aa645736(v = vs.71).aspx 其他解决方案 在C#DLL周围编写C ++/CLI包装器,该C#DLL将本机C ++接口公开到C#代码. . 您可能需要在应用程序中启用/clr标志,但是也有一些方法也可以通过DLL公开一个完全本机的接口. There is a good explanation and sample implementation of the various techniques at 此链接.
2 2024-04-21
编程技术问答社区
使用企业库的数据库日志 5
有人知道如何使用EL 5.0实现数据库异常记录? 谢谢! 解决方案 您需要针对数据库运行脚本,以便为您创建特定的表结构.另外,将有一个存储过程将创建,您将必须在跟踪侦听器的配置部分中引用.您应该能够在此处找到此脚本文件:c:\ entlib41src \ blocks \ logging \ src \ src \ databaseTraceListener \ Scripts文件夹.我知道这是针对图书馆的版本4,但是请看一下版本5,我意识到文件夹结构已进行了更改,并且脚本文件夹在位置上没有.但是,此网站在这里一些指导. 您也可以尝试 因此,我对Entlib50Src \ blocks \ logging \ src \ src \ databaseTraceListener \ scripts文件夹的神秘消失进行了更多研究.事实证明,如果您像我一样使用MSI将ENTLIB5安装到计算机上.实际上,您可以运行一个源代码MSI,埋在C:\ Program Files(
2 2024-04-21
编程技术问答社区
无法加载文件或汇编或其依赖项之一.该系统找不到指定的文件
我有这样的代码 public static Type ToType(XmlSerializableType xmlSerializableType) { string func = "XmlSerialzationType.ToType"; Type type = null; if (xmlSerializableType != null && xmlSerializableType.Name != string.Empty) { type = Type.GetType(xmlSerializableType.Name); if (type == null) { // May be a user defined class try { Assembly assembly = Assembly.Load(xmlSerializableType.AssemblyName); ty
4 2024-04-21
编程技术问答社区