所以,当我收到这样的警告时,我从来不知道该怎么做,所以我想要其他专业程序员的建议.当我得到那种警告(而不是错误)
警告C4267:'=':从'size_t'转换为'ULONG',可能会丢失数据
(省略其他上下文代码)
wchar_t pszName[CREDUI_MAX_USERNAME_LENGTH + 1] = L"user";
wchar_t pszPwd[CREDUI_MAX_PASSWORD_LENGTH + 1] = L"password";
// ..
COAUTHIDENTITY authIdent;
// ...
memset(&authIdent, 0, sizeof(COAUTHIDENTITY));
authIdent.PasswordLength = wcslen(pszPwd);
authIdent.UserLength = wcslen(pszName);
Run Code Online (Sandbox Code Playgroud)
问题显然是wcslen()返回size_t,authIdent.PasswordLength是ULONG.照顾这些警告的最佳方法是什么?是否有winapi函数,他们希望我使用而不是wcslen()?
编辑:感谢大家的所有好评!
def on_printer_button_clicked(self, button):
for i in range(len(self.printer_buttons)):
if button == self.printer_buttons[i]:
pHandle = win32print.OpenPrinter(self.printers[i]['pPrinterName'])
win32print.DeletePrinter(pHandle)
return
Run Code Online (Sandbox Code Playgroud)
所以我所做的就是打开打印机句柄并调用函数删除打印机,如您所见。这是我在运行该函数时在控制台中得到的信息:
uninstall_windowGUI.py", line 57, in on_printer_button_clicked
win32print.DeletePrinter(pHandle)
pywintypes.error: (5, 'DeletePrinter', 'Access is denied.')
Run Code Online (Sandbox Code Playgroud)
我试过运行 IDE(管理员模式下的 Pycharm,但仍然遇到同样的问题。关于如何继续前进的任何想法?在我弄清楚之前我有点卡住了。(另外:我正在使用 Gtk 和Gdk 创建接口,如果这有区别的话。)
我正在尝试在 gtkmm 中编写一个程序,但按钮不会显示。我已经做了我所知道的一切来让这些按钮显示,但没有任何效果。我什至在 main 和 win_home.cpp 文件中都包含了“显示全部”方法,但仍然没有任何反应。然而,程序确实会执行代码,因为 cout 语句都被打印出来。有谁知道为什么这些按钮不会显示?
主要.cpp:
#include <gtkmm.h>
#include <iostream>
#include "win_home.h"
int main(int argc, char *argv[])
{
auto app = Gtk::Application::create(argc, argv, "com.InIT.InITPortal");
std::cout << "Creating Portal Window" << std::endl;
HomeGUI win_home;
win_home.set_default_size(600,400);
win_home.set_title("St. George InIT Home");
return app->run(win_home);
}
Run Code Online (Sandbox Code Playgroud)
win_home.cpp:
#include "win_home.h"
HomeGUI::HomeGUI()
{
//build interface/gui
this->buildInterface();
//show_all_children();
//register Handlers
//this->registerHandlers();
}
HomeGUI::~HomeGUI()
{
}
void HomeGUI::buildInterface()
{
std::cout << "Building Portal Interface" << std::endl;
m_portal_rowbox = Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 5);
add(m_portal_rowbox);
Gtk::Button m_pia_button = Gtk::Button("Printer …Run Code Online (Sandbox Code Playgroud)