小编jde*_*aan的帖子

来自C#中字符串的char*指针

是否有可能获得char*一个string在C#中的变量?

我需要将路径字符串转换char*为使用某些原生win32函数...

c# pointers char

32
推荐指数
4
解决办法
7万
查看次数

使用lock(this)来说明死锁的示例代码

我读过几篇文章和帖子是说lock(this),lock(typeof(MyType)),lock("a string")都是不好的做法,因为另一个线程可以锁定相同的密钥和导致死锁.为了理解这个问题,我试图创建一些示例代码来说明死锁,但一直无法解决这个问题.

有人可以编写一个简洁的代码来说明这个经典问题吗?请保持简短,我只能在较小的块中消化代码.

编辑: 我认为lassevk总结得很好; 真正的问题是你失去了对锁的控制.一旦发生这种情况,您无法控制锁被调用的顺序,并且您允许潜在的死锁情况.

lock(this),lock(typeof(MyType))等所有的情况下,你选择了一个锁是无法控制的情况.

.net c# multithreading deadlock

29
推荐指数
2
解决办法
3万
查看次数

C中是否有一个标准函数可以返回数组的长度?

C中是否有一个标准函数可以返回数组的长度?

c arrays

24
推荐指数
3
解决办法
8654
查看次数

我可以在不使用编译器的情况下使用clang获得C/C++代码的XML AST转储吗?

我设法使用cmake和visual studio 10成功编译了用于Windows的窗口.我想获得一个XML文件作为源代码的AST表示.有一个选项可以在linux(ubuntu)下使用gcc提供结果,但是在windows框中不起作用:

clang -cc1 -ast-print-xml source.c
Run Code Online (Sandbox Code Playgroud)

但是,这是调用编译阶段(我想避免).挖掘源代码并没有帮助我,因为我很吵.我可以通过使用以下方法设法生成AST的二进制版本:

clang -emit-ast source.c
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种格式不能直接用于解析.是否有一些现有方法直接生成XML树而不是clang中的二进制树?

目标是在.NET环境中的其他工具中使用XML表示,因此我需要围绕本机clang lib进行一些包装以访问二进制AST.如果有人已经为.NET编写了一些二进制clang AST解析器,可能还有第三种选择吗?

如果clang前端生成的AST与编译阶段生成的AST不相等,我是否可能会遗漏这些内容.

xml code-generation clang abstract-syntax-tree

23
推荐指数
1
解决办法
1万
查看次数

Excel错误HRESULT:0x800A03EC尝试获取具有单元格名称的范围

我正在使用Window Service项目.必须在序列时间内将数据写入Excel文件中的工作表.

但有时,有时候,服务会在尝试获取带有单元名称的范围时抛出异常"HRESULT异常:0x800A03EC".

我已经打开excel表的代码,并在这里获取单元格.

  • 操作系统:窗口服务器2003 Office:
  • Microsoft Office 2003 sp2

1:打开excel表

m_WorkBook = m_WorkBooks.Open(this.FilePath, 0, false, 5,
     "", "", true, Excels.XlPlatform.xlWindows, ";",
     true, false, 0, true, 0, 0);
Run Code Online (Sandbox Code Playgroud)

2:让单元格写入

protected object m_MissingValue = System.Reflection.Missing.Value;
Range range = m_WorkSheet.get_Range(cell.CellName, m_MissingValue);
// error from this method, and cell name is string.
Run Code Online (Sandbox Code Playgroud)

c# excel vsto exception

19
推荐指数
4
解决办法
10万
查看次数

如何在windows下的cmd窗口中显示日语汉字?

我有一个英文Windows 2003服务器,启用了亚洲语言支持.命令窗口可用的两种唯一字体(cmd设置)是raster和lucida console.这一个或另一个都没有正确显示汉字(显示为问号).

是否有解决方案让它们显示出来?在写入控制台之前,我的应用程序中是否必须进行一些转换?

我现在正在写UTF8,对于一些非ASCII字符(如öäüß)也有效.写入控制台的源代码具有正确的数据(可以在调试器中正确查看汉字).如果重要,我正在用C#编写应用程序.

编辑:我发现这个链接解释了问题背后的问题,并为C#提供了一个解决方案(涉及本机调用).这适用于.NET 4.5(我未经测试)

windows console cmd utf-8

15
推荐指数
2
解决办法
3万
查看次数

从生成它的应用程序中调试生成的.NET程序集

简而言之:如何在生成程序上调试调试会话期间生成的代码?(见下面的代码)

我面临以下问题:我想从生成它的应用程序调试动态生成/编译的代码.我提供了一个简单的例子来澄清它.这个例子不需要调试!我真正的应用程序生成更多的行和代码,真正证明调试,相信我:-)我想知道是否有一种方法来调试或放置断点HelloWorld.单步调用InvokeMethod调用不起作用.也许解决方案涉及在调用站点对生成的程序集进行代码修改.

我已经看了很多问题(例如在Visual Studio .NET中调试动态加载的程序集),但没有一个有助于解决问题(如果可以解决的话?)

我从http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=118中获取代码作为基础并修复了已废弃的调用.除此之外,我在内存中即时生成了程序集,并且调用运行良好.我明确生成了一个包含Debug信息的程序集,这给了我希望:为什么在没有调试的情况下会有选项呢?

using System;
using System.Text;
using System.IO;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;

namespace DynamicAssembly
{
    class CreateCompileExecute
    {
        [STAThread]
        static void Main(string[] args)
        {
            // Creates a text file to store the new class
            StringBuilder builder = new StringBuilder();
            builder.AppendLine("using System;");
            builder.AppendLine("namespace CSharpFriendsRocks");
            builder.AppendLine("{");
            builder.AppendLine("class CSharpFriends");
            builder.AppendLine("{");
            builder.AppendLine("public CSharpFriends() {" +
                " Console.WriteLine(\"The CSharpFriends type is constructed\"); }");
            builder.AppendLine("public void HelloWorld() {" +
                " Console.WriteLine(\"Hello World - CSharpFriends.Com …
Run Code Online (Sandbox Code Playgroud)

.net c# debugging code-generation codedom

14
推荐指数
1
解决办法
5285
查看次数

LePUS3优于UML有什么优势?

当在线搜索面向对象的概念,例如复合设计模式时,我经常发现它们以LePUS3表示法表示.我对这种建模语言并不熟悉.

这是我应该比UML更喜欢的东西吗?

uml modeling

12
推荐指数
1
解决办法
1797
查看次数

什么是这种新的Axum编程语言?

我今天在slashdot上阅读了这个故事,他们宣布了微软新的并行编程语言.

这种新的编程语言是关于什么的?它说并行编程.但它是否会成为MPI,PVM,OpenMP和类似并行库/框架的替代/替代品?

有什么想法吗?

.net programming-languages concurrent-programming axum

10
推荐指数
2
解决办法
1943
查看次数

在C++中使用Boost Bimap

C++ Boost有一个双向映射的Bimap容器:http: //www.boost.org/doc/libs/1_43_0/libs/bimap/doc/html/index.html

有谁知道Boost :: bimap的表现?我的意思是访问地图中元素的时间复杂度是多少?它是否与unordered_map访问一样快(哪个是O(1))?

谢谢!

c++ complexity-theory boost bimap

7
推荐指数
1
解决办法
7311
查看次数