Articles of c + +

如何编译具有“wlanapi.h”和“windows.h”依赖项的C ++代码

我正在修改扫描附近无线信号的开源代码。 程序代码如下所示: #pragma comment(lib, "wlanapi.lib") #include <stdio.h> #include <windows.h> #include <wlanapi.h> VOID WlanNotification(WLAN_NOTIFICATION_DATA *wlanNotifData,VOID *p) { if(wlanNotifData->NotificationCode == wlan_notification_acm_scan_complete) { bWait = false; } else if(wlanNotifData->NotificationCode == wlan_notification_acm_scan_fail) { printf("Scanning failed with error: %x\n", wlanNotifData->pData); bWait = false; …… 我想知道如何编译具有wlanapi.h和windows.h依赖项的源代码? 请注意,我希望此代码在Windows(不是Linux)上运行。 我正在编写一个简单的Windows用户的工具,将诊断他们的WiFi安全。 第一步是感测最近的WiFi接入点及其各自的encryptiontypes。 我只是想知道如何以最简单的方式编译Windows平台的代码,该平台具有“windows.h”或“wlanapi.h”的依赖关系。

如果我使用SYSTEM用户令牌启动login用户进程,是否会危及系统的安全?

从安全angular度来看,我很好奇,做下面描述的有多糟糕? 我需要在本地服务的交互式login用户会话中启动一个高级进程。 这个过程仅仅作为一个消息的 GUI窗口存在,这个窗口对于用户来说是不可见的,每当这个过程开始时,它的类名是随机的。 如果我用本地服务的用户令牌运行这个过程,它会加快速度: //Pseudo-code, error checks are omitted for brevity //This code is run from a local-service with SYSTEM credentials PSID gpSidMIL_High; ConvertStringSidToSid(L"S-1-16-12288", &gpSidMIL_High); HANDLE hToken, hToken2; OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken); DuplicateTokenEx(hToken, MAXIMUM_ALLOWED, NULL, SecurityIdentification, TokenPrimary, &hToken2); SetTokenInformation(hToken2, TokenSessionId, &userSessionID, sizeof(userSessionID)); DWORD dwUIAccess = 1; SetTokenInformation(hToken2, TokenUIAccess, &dwUIAccess, sizeof(dwUIAccess)); //Set "high" mandatory integrity level […]

转换.net EXE本地WIN32 EXE?

我已经访问过这个,没有find答案如何转换一个.NET EXE本地Win32 EXE? 为了我。 我正在寻找一个程序,将.net exe转换成win32 exe。 那可能吗 ? 我从Microsoft运行ngen.exe,但是当我编写应该转换程序集的命令,它告诉转换成功,但我没有find转换的exe:这是命令: start ngen install C:\program.exe /debug

Winapi win32编程 – 选项卡控件不显示

我一直在做一个选项卡控制,它只有在winMain中发布时才可见。 当我尝试在WM_CREATE消息句柄中创build选项卡时,什么也不显示。 这是我的代码: #define WIN32_LEAN_AND_MEAN #define IDC_STATIC -1 #define ID_FILE_EXIT 101 #define ID_HELP_ABOUT 102 #define ID_B_BLANK 1001 #define ID_B_HOME 1002 #define ID_B_SAVE 1003 #include <strsafe.h> #include <windows.h> #include <CommCtrl.h> #include <iostream> #include <ShlObj.h> #include <cstring> HWND main_hwnd, tab_hwnd, tab0_hwnd, tab1_hwnd, tab2_hwnd, tab3_hwnd, tab4_hwnd; HINSTANCE tab_hinst; TCHAR HomePath[MAX_PATH*2], SavePath[MAX_PATH*2]; WNDCLASSEX wc; bool success=FALSE; MSG msg; HWND […]

C#Windows服务事件

所以我只是在这里搞乱了我的第一个Windows服务的概念certificate。 我试图本质上创build一个窗口服务,作为信号连接的监听器。 实质上,我将有一个Windows应用程序和一个Windows服务。 胜利服务将处理连接到信号中心和信号员电话发射事件。 Windows应用程序将侦听这些事件并根据它们执行操作。 目前我无法得到这个工作。 我从来没有使用事件,或以前的Windows服务。 在我的Windows应用程序,我的事件从来没有打到他们的断点,以及我从日志logging空引用exception的错误 ConnectToHub() 好的,如果我注释掉OnConnected()方法调用我logging一个成功的连接到集线器。 我从来没有和事件合作过,所以我的错误与事件? 我辩论这种方法有点矫枉过正。 然而,对我来说,这是一个概念certificate,我可以find长期运行的Windows服务的用途,并添加一些事件的混合。 服务代码: public delegate void MessageRecievedEventHanlder(object sender, MessageRecievedArgs e); public delegate void ConnectedToHubEventHandler(object sender, ConnectedArgs e); public partial class SignalRService : ServiceBase { IHubProxy _hub; HubConnection connection; string url = @"http://localhost:8080/"; private Message LastMessage; public static event MessageRecievedEventHanlder NewMessage; protected virtual void OnNewMessage(MessageRecievedArgs […]

ReadDirectoryChangesW和GetOverlappedResult

我调用ReadDirectoryChangesWasynchronous监视后台线程中的目录更改。 这是如何打开目录( basePath ),并启动“阅读”线程: m_hDIR = CreateFileW( basePath, FILE_LIST_DIRECTORY | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL); if (m_hDIR == INVALID_HANDLE_VALUE) throw CrException(CrWin32ErrorString()); //Start reading changes in background thread m_Callback = std::move(a_Callback); m_Reading = true; m_ReadThread = std::thread(&CrDirectoryWatcher::StartRead, this); 这是StartRead() :(注意: m_Reading是atomic<bool> ) void StartRead() { DWORD dwBytes = 0; FILE_NOTIFY_INFORMATION fni{0}; […]

在asynchronous模式下使用FtpFindFirstFile unicode版本访问冲突

比方说,我有非常简单的使用asynchronousWinInet的小代码示例: #include "stdafx.h" #include "WinInet.h" #pragma comment(lib, "wininet.lib") DWORD LatestResult = 0; HANDLE MayContinue = 0; VOID CALLBACK CallBack( __in HINTERNET hInternet, __in DWORD_PTR dwContext, __in DWORD dwInternetStatus, __in_bcount(dwStatusInformationLength) LPVOID lpvStatusInformation, __in DWORD dwStatusInformationLength ) { if (dwInternetStatus == INTERNET_STATUS_REQUEST_COMPLETE) { LatestResult = ((LPINTERNET_ASYNC_RESULT)lpvStatusInformation)->dwResult; SetEvent (MayContinue); } } int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE […]

是否有可能在Windows上捕获另一个进程的未处理的exception?

一个进程是否有可能捕获系统上另一个进程的未处理exception? 如果可能的话,在哪种情况下可能? 如果第二个过程不是由第一个过程启动的话,是否有可能? 我主要是在寻找一个关于native c ++的答案。

“Button_Click”:不是“ButtonTest :: MainPage”的成员

我是C ++和Windows商店编程的新手,我坚持在button上定义点击处理程序。 我指的是这些指示: 将一个Button控件添加到父容器。 要为button指定名称,请将x:Name属性设置为string值。 要在代码中引用一个控件,它必须有一个名字。 否则,不需要名称。 要将标签分配给button,请将Content属性设置为string值。 要在用户单击button时执行操作,请为Click事件添加处理程序。 在Click事件处理程序中,添加代码来执行一些操作。 <Button x:Name="button1" Content="Button" Click="Button_Click" /> void MainPage::Button_Click(Object^ sender, RoutedEventArgs^ e) { // Add code to perform some action here. } 我在MainPage.xaml的Grid块内添加了<Button x:Name="button1" Content="Button" Click="Button_Click" /> 。 我在void MainPage::Button_Click(Object^ sender, RoutedEventArgs^ e) {…}添加了void MainPage::Button_Click(Object^ sender, RoutedEventArgs^ e) {…} 。 现在我得到两个我无法解决的错误: 错误C2039:“Button_Click”:不是“ButtonTest :: MainPage”的成员 和 智能感知:类“ButtonTest :: […]

使用事件textchanged禁用/启用应用程序栏button在运行时(Windows Phone)

在这部分代码中是事件TextChanged来启用应用程序栏中的button。 C#: private void Textbox_TextChanged(object sender, EventArgs e) { ApplicationBarIconButton btn_guardar = ApplicationBar.Buttons[0] as applicationBarIconButton; if (!string.IsNullOrEmpty(txt_nom_usuario.Text) && !string.IsNullOrEmpty(txt_edad_usuario.Text) && !string.IsNullOrEmpty(txt_peso_usuario.Text)) { btn_guardar.IsEnabled = true; } else btn_guardar.IsEnabled = false; } XAML: <phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar Mode="Default" IsVisible="True"> <shell:ApplicationBarIconButton x:Name="btn_guardar" IconUri="/icons/appbar.save.rest.png" Text="Guardar" Click="btn_guardar_Click" IsEnabled="False" /> <shell:ApplicationBarIconButton x:Name="btn_atras" IconUri="/icons/appbar.back.rest.png" Text="Atrás" Click="btn_atras_Click" /> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar> <TextBlock x:Name="lbl_ingresanombre" Height="39" Margin="60,28,0,0" […]