Tag: C#的

当进程以pipe理员身份运行时,获取用户名()

我有一个简单的C ++程序提示用户名 #include <windows.h> #include <Lmcons.h> #include <winbase.h> int _tmain(int argc, _TCHAR* argv[]) { wchar_t username[UNLEN + 1]; DWORD username_len = UNLEN + 1; ::GetUserName(username, &username_len); MessageBox(NULL, username, NULL, 1); return 1; } GetUserName()按照预期在pipe理员帐户中执行,意味着打印真正的用户名。 但是,当以非pipe理员帐户的pipe理员身份运行时 ,我将获得pipe理员名称,而不是真实的login用户。 我相信这是行为,因为它在GetUserName()中有logging : 如果当前线程正在模拟另一个客户端,则GetUserName函数将返回该线程正在模拟的客户端的用户名。 题 有没有办法获得真正的login用户(非pipe理员),即使stream程以pipe理员身份运行?

根据C89标准修改string文字未定义的行为?

我相信在C99中,string文字的修改是不确定的行为。 我没有这个标准的副本,但是我有一个在6.4.5第7段中陈述的C1X(n1570)草案: 没有说明这些数组是否是不同的,只要它们的元素具有适当的值。 如果程序试图修改这样一个数组,行为是不确定的。 我find了一个关于这个话题的Stack Overflow 问题 ,并且包含了Jonathan Leffler的以下评论: 最初,C89(C90)标准没有规定修改文字,因为在标准之前编写的代码太多,会被破坏。 但是我也看到了很多关于string文字types的讨论,以及它们是char[N]而不是const char[N]的事实。 我认为,这个决定是为了使现有的大量代码不会中断。 任何人都可以给我一个明确的答案。 在C89string文字修改UB?

A a()是什么意思?

考虑这个代码: #include<iostream> using namespace std; class A { public: A():age(12){} int age; }; int main() { A a(); cout << a.age << endl; return 0; } 当我使用g ++编译它时,出现错误: 你看不到成员年龄,因为a不是A() 谁可以给我解释一下这个? 什么是A a() ?

c结构数组初始化

我有结构 struct ABC { int a; int b; } 和它的数组 struct ABC xyz[100]; 我想初始化a = 10和b = 20; 为所有数组元素。 哪个更好?

Eigen和std :: vector

我有一个matrix,它给出如下: std::vector<std::vector<std::complex<double>>> A; 我想把它映射到Eigen线性代数库如下: Eigen::Map<Eigen::MatrixXcd, Eigen::RowMajor> mat(A.data(),51,51); 但代码失败 error: no matching function for call to 'Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 1>:: 无论如何转换vector的向量,以便Eigen可以使用它?

FileSystemWatcher无法访问networking驱动器

我试图运行一个文件观察者通过使用Windows服务的一些服务器path。 我使用我的Windowslogin凭据来运行服务,并能够从我的login访问这个“someServerPath”。 但是,当我从FileSystemWatcher这样做时,会抛出: 目录名\ someServerPath无效“exception。 var fileWatcher = new FileSystemWatcher(GetServerPath()) { NotifyFilter=(NotifyFilters.LastWrite|NotifyFilters.FileName), EnableRaisingEvents=true, IncludeSubdirectories=true }; public static string GetServerPath() { return string.Format(@"\\{0}", FileServer1); } 任何人都可以帮我这个吗?

找不到可安装的ISAM

我有以下代码: string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\db\suc.xls; Extended Properties=""Excel 12.0;HDR=YES;"""; // Create Connection to Excel Workbook using (OleDbConnection connection = new OleDbConnection(excelConnectionString)) { OleDbCommand command = new OleDbCommand ("Select * FROM [Sheet1$]", connection); connection.Open(); 我得到以下错误: 找不到可安装的ISAM。 在connection.Open() 。 有任何想法吗 ?

给应用程序提高UAC

我有一个需要UAC提升的应用程序。 我有代码让我给,但应用程序打开两次..这是问题.. 所以这里是Form1中的代码: public Form1() { InitializeComponent(); WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); if (!hasAdministrativeRight) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; startInfo.Verb = "runas"; try { Process p = Process.Start(startInfo); } catch (System.ComponentModel.Win32Exception ex) { return; } } } 这是代码programs.cs static void Main() […]

如何将hex转换为字节数组?

我复制和粘贴这个二进制数据的SQL Server,我无法在这个时候查询。 0xBAC893CAB8B7FE03C927417A2A3F6A60BD30FF35E250011CB25507EBFCD5223B 我如何将它转换回在C#中的字节数组?

为什么这些分裂方程导致零?

下面的for循环中的所有除法方程的结果是0.我怎样才能得到它给我一个小数例如: 297 / 315 = 0.30793650793650793650793650793651 码: using System; namespace TestDivide { class Program { static void Main(string[] args) { for (int i = 0; i <= 100; i++) { decimal result = i / 100; long result2 = i / 100; double result3 = i / 100; float result4 = i / 100; Console.WriteLine("{0}/{1}={2} […]