Tag: c#

从C#调用C dll代码?

可能重复: 如何从C#ASP.NET网页调用非托管C / C ++代码 有没有办法把两者联系起来?

P / Invoke调用中的AccessViolationException

我正在通过P / Invoke调用编写一个小的zlib包装器。 它在64位目标(64位C#构建,64位DLL)上运行完美,但在32位目标(32位C#构建,32位DLL)上抛出AccessViolationException。 这是抛出exception的C#签名和代码: [DllImport(Program.UnmanagedDll, CallingConvention = CallingConvention.Cdecl)] private static extern ZLibResult ZLibDecompress(byte[] inStream, uint inLength, byte[] outStream, ref uint outLength); internal enum ZLibResult : byte { Success = 0, Failure = 1, InvalidLevel = 2, InputTooShort = 3 } internal static ZLibResult Decompress(byte[] compressed, out byte[] data, uint dataLength) { var len = […]

如何使用C#等C ++枚举类型?

如何使用C#等C ++枚举类型? 考虑c ++中的以下定义: enum myEnum { A, B, C}; myEnum en = A; 现在我希望将第2行写成如下行,如C#: myEnum en = myEnum.A; ??

如何在创建数据库时指定ODBC访问驱动程序格式

使用C,我试图通过SQLConfigDataSource函数使用ODBC创建Access 2007数据库文件。 char szDriverName[] = “Microsoft Access Driver (*.mdb, *.accdb)”; char szAttr[] = “CREATE_DB=c:\access2007.accdb”; SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriverName, szAttr); 我希望新数据库的文件扩展名为.accdb,但是当我运行上面的代码时,我总是得到c:\ access2007.accdb.mdb。 我可以从ODBC Admin中指定12.x(accdb)或4.x(mdb),如下图所示,但是如何通过ODBC API执行此操作? 我能够创建用户DSN,但我觉得它也是错误的格式,因为我还没有测试过它。 如何使用ODBC / Access API定义格式版本?

Swig – 生成包装器以传递struct数组

更新 我刚刚发现了%apply指令(例如见这里 )。 不幸的是我无法使用结构: %module packer_cs %include “carrays.i” %{ #include “packer.h” %} %include “typemaps.i” %include “arrays_csharp.i” %apply image_t INPUT[] { image_t *images } %include “packer.h” 这导致: swig -csharp -outdir bin\csharp packer\packer.i Warning 453: Can’t apply (image_t INPUT[]). No typemaps are defined. 我找不到任何有关此警告的文档。 看起来我必须定义一个自定义类型映射,但我不知道从哪里开始。 我已经厌倦了这种缺乏文档,并且非常渴望有一天能够成功编写我的包装器:( 原帖 在我之前的 两篇post之后,我仍然在使用C#中的C库时遇到问题。 回顾一下:我有一个C库,我正在尝试使用Swig编写一个C#包装器。 在.h文件中,方法声明为: int pack(image_t *images, int nb_images, parameters_t […]

传递包含C和C#之间结构数组的结构(DLL和P调用)

我有一个复杂的结构C dll我真的是C#的新手: typedef struct { int a; int b; } simple_struct; typedef struct { int d; int e; simple_struct f[20]; short g; simple_struct h[20]; short i; } complex_struct; 问题是我无法使用这种结构连接我的C#应用​​程序! 在DLL中有一个函数Ge​​tData(complex_struct * myStruct),我应该从C#中调用它,所以我创建了: [StructLayout(LayoutKind.Sequential, Pack = 1)] unsafe struct simple_struct { public int a; public int b; } ; [StructLayout(LayoutKind.Sequential, Pack = 1)] unsafe struct complex_struct […]

串口重定向或拆分

我正在寻找一本关于如何进行串口重定向或端口拆分的书籍或代码示例。 我编写了很多com端口应用程序,并希望编写一个监视器应用程序,以便我可以看到应用程序和设备之间的串行端口。 所以我希望能够将串口重定向到另一个端口,这样我就可以监控端口之间的数据流。 我理解在某些情况下,这必须在内核级别完成。 (在USB情况下) 我在C#中使用system.IO.Ports编写了监视器应用程序。 如果我必须调用一个很好的C ++ / C程序集。 谢谢 乔

如何使Visual Studio 2010将文件扩展名识别为C#/ ASPX / C / C ++文件?

VS 2005有一个解决方案: http://www.dotnetmonster.com/Uwe/Forum.aspx/vs/3298/Make-Visual-C-recognize-file-extensions-as-C-files 但是没有为VS2008和VS2010找到相同的注册表。 那么我在哪里可以找到解决方案更新呢? 谢谢。

使用一元/二元运算符将后缀添加到中缀

我试图从postfix转换为中缀表示法,需要一些帮助。 已经存在关于中缀到后缀转换的问题 ,这给出了一个我无法转换回来的示例。 (注意:那里缺少一个减号!) 以下是我的转换器的输出,其中第一个“列”是后缀输入,第二个是我的中缀输出,第三个是我可能得到的(?): 2 – = – 2 =? – 2 true 1 + 2 + = + 1 + 2 =? + 1 + 2 true 1 + 2 + + = + (+ 1 + 2) =? + 1 + + 2 false 1 + 2 + + 3 – – […]

确定谁在Windows 2008 R2服务器/ Windows 7中访问共享文件夹上的文件

我需要找到一种方法来确定正在访问共享文件夹上的哪些文件以及由谁访问。 像“Net Files”和“Net Session”这样的命令可以提供这些信息,以及SysInternals中的PSFile.exe,但我无法弄清楚如何以编程方式执行此操作。 我找到了一种方法来确定谁通过WMI访问共享,但它没有显示正在访问的文件。 有谁知道如何在C / C ++ / C#中做到这一点? 任何和所有的帮助将不胜感激。