Tag: c ++

通过CLI将fstream(或等效的)从C#传递到C ++

如何将C#中的fstream或等效项通过CLI传递给非托管C ++ DLL? 粗略的应用大纲: C#应用程序从数据库中读取二进制文件 非托管C ++ dll用于“解码”此文件并返回其中包含的信息 我可以修改任何C#代码。 CLI包装器是我可以修改的C ++端的唯一部分。 我目前正在将二进制文件保存到磁盘并将其路径传递给CLI包装器,在那里它作为fstream打开。 这适用于测试目的,但由于显而易见的原因不适用于生产。 我还研究了将一个字节数组传递给DLL,但我无法找到将其转换为除了GlobalAlloc以外的其他fstream的方法,我不想使用它。 任何帮助或想法将不胜感激。 谢谢。

单个Windows线程的内存开销是多少?

每个线程的堆栈是1 Mb吗? 或者只是CLR线程? 我想通过任务管理器了解本机Windows线程(c ++)和CLR线程作为视图的内存。 谢谢

C ++中字符串的L前缀

我有一个静态库。 该库定义了以下function int WriteData(LPTSTR s) 调用该函数的示例是 LPTSTR s = (LPTSTR) L”Test Data”; int n = WriteData(s); WriteData在成功时返回0,在失败时返回-1。 我正在编写动态DLL来导出此函数。 int TestFun(LPTSTR lpData) { return WriteData(lpData); } C ++测试应用程序结果 LPTSTR s = (LPTSTR) L”Test Data”; TestFun(s); //OK return 0 LPTSTR s = (LPTSTR) “Test Data”; TestFun(s); //Fail return -1 我必须从ac#应用程序调用它。 我假设我的DLL-Import签名是: [DllImport(“Test.dll”)] private static extern int TestFun(String […]

以编程方式在cmista中运行cmd.exe作为管理员,c#

我有一个visual studio设置和部署项目。 我在其中添加了一个.cmd脚本。 该脚本需要管理员权限才能运行。 当用户单击setup.exe时,UAC会提示用户输入管理员权限。 所以我假设在setup.exe中创建和调用的所有进程都将以管理员身份运行。 所以我设置调用我的控制台应用程序,其中包含以下代码。 ProcessStartInfo p1 = new ProcessStartInfo(); p1.UseShellExecute = true; p1.Verb = “runas”; p1.FileName = “cmd.exe”; Process.Start(p1); 所以它应该工作,因为它在管理员空间下运行。 我想通过c#进程类作为管理员运行cmd.exe。我正在运行windows vista。 我试过没办法! 我能做什么!

响应未解析的HttpWebRequest和Set-Cookie标头(WP7)

我试图获取标题“Set-Cookie”或访问cookie容器,但Set-Cookie标头不可用。 cookie位于响应头中,但它不在客户端请求对象中。 我正在使用注册ClientHttp堆栈 bool httpResult = WebRequest.RegisterPrefix(“http://”, WebRequestCreator.ClientHttp); 这是回复: HTTP/1.1 200 OK Content-Type: application/xml; charset=utf-8 Connection: keep-alive Status: 200 X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.0.pre4 ETag: “39030a9c5a45a24e485e4d2fb06c6389” Client-Version: 312, 105, 0, 0 X-Runtime: 44 Content-Length: 1232 Set-Cookie: _CWFServer_session=[This is the session data]; path=/; HttpOnly Cache-Control: private, max-age=0, must-revalidate Server: nginx/0.7.67 + Phusion Passenger 3.0.0.pre4 (mod_rails/mod_rack) … […]

从没有COM的非托管C ++应用程序调用C#dll

有没有办法在没有COM使用的情况下从c ++非托管应用程序调用c#dll?

使用PostSharp在c#中使用构造函数的方面

我正在研究PostSharp中的各种概念。 更新: 这是我的程序类 namespace myconstructor { class Program { static void Main(string[] args) { createfolder(); streamfolder(); } public static void createfolder() { File.Create(“E:/samplefile.txt”); } public static void streamfolder() { StreamWriter sw = new StreamWriter(“E:/samplestream.txt”); } } } 和我的方面课一样 1)一些跟踪方面类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using PostSharp.Extensibility; using PostSharp.Aspects.Dependencies; using PostSharp.Aspects; using PostSharp.Aspects.Advices; […]

在C ++(MFC)应用程序和C#之间传递数据

我们有一个单片MFC GUI应用程序,它接近它在C ++中的生命。 我们计划在C#中构建新function,并在每个应用程序之间传递数据。 问题是:在C ++和C#之间传递数据的最佳方法是什么? 笔记: 两端都有一个GUI前端,可能只需要传递像Id这样的简单数据,并且可能有一种机制,它向另一个应用程序指示要使用的进程/function。 例如,其中一个应用程序将是C#中的CRM系统,当双击网格中的一行时,会传递customerId和一条消息,以在MFC应用程序的客户表单中打开该客户。 我做了一些研究,选项似乎是Windows Messaging,Memory Mapping,Named Pipes或类似Windows Sockets的东西。 在这个阶段,我们倾向于命名管道,但非常感谢其他建议或提示或其他人的经验。

如何在Windows 7或Windows Server 2008上以编程方式创建Windows用户帐户?

我一直在尝试在Windows 7机器上创建新的本地用户帐户。 我使用了System.DirectoryServices.DirectoryEntry类(如此处所示 )但它似乎不起作用。 这是文章中的代码: static void Main(string[] args) { try { DirectoryEntry AD = new DirectoryEntry(“WinNT://” + Environment.MachineName + “,computer”); DirectoryEntry NewUser = AD.Children.Add(“TestUser1”, “user”); NewUser.Invoke(“SetPassword”, new object[] {“#12345Abc”}); NewUser.Invoke(“Put”, new object[] {“Description”, “Test User from .NET”}); NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find(“Guests”, “group”); if (grp != null) {grp.Invoke(“Add”, new object[] {NewUser.Path.ToString()});} Console.WriteLine(“Account Created […]

如何在Windows 8中在线播放背景音乐

在我的应用程序中,我使用UI MediaElement。 但是,当我单击Windows键时,音乐停止。 我试过用: MediaControl.PlayPressed += MediaControl_PlayPressed; MediaControl.PausePressed += MediaControl_PausePressed; MediaControl.PlayPauseTogglePressed += MediaControl_PlayPauseTogglePressed; MediaControl.StopPressed += MediaControl_StopPressed; 我设置了源MediaElement: media.Source = new Uri(“http://stream-hq.mp3.zdn.vn/fsgggsfdlwjglwjAAAAA/2a3f830202ea6d29bc7c5a5146401566/4ff5620a/2011/12/27/a/4/a4fcc199a184a93cfeb0fe35642c53bf.mp3”, UriKind.RelativeOrAbsolute); 请帮我!