Winapi 如何从Cygwin程序调用Win32 API

Winapi 如何从Cygwin程序调用Win32 API,winapi,cygwin,Winapi,Cygwin,我希望在我正在进行的项目中使用Win32 API。但是,我不知道如何从我的cygwin项目中调用Win32 API。有人能给我指出正确的方向吗?可以通过包含“windows.h”头文件从cygwin程序访问Win32 API。当然,这意味着您已经安装了win32软件包。以下是一个示例程序: #include <iostream> #include <string> #include <windows.h> int main(int argc, char *a

我希望在我正在进行的项目中使用Win32 API。但是,我不知道如何从我的cygwin项目中调用Win32 API。有人能给我指出正确的方向吗?

可以通过包含“windows.h”头文件从cygwin程序访问Win32 API。当然,这意味着您已经安装了win32软件包。以下是一个示例程序:

#include <iostream>
#include <string>
#include <windows.h>

int main(int argc, char *argv[])
{
    std::string val;

    if (argc > 1)
    {
        val = argv[1];
    }

    std::cout << "You typed: " << val << std::endl;
    ::MessageBox(NULL, val.c_str(), "You Typed:", MB_OK);

    return 0;
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
std::字符串val;
如果(argc>1)
{
val=argv[1];
}
std::cout您可以查看(特别是6.9如何使用Win32 API调用?)


当然,你需要掌握Win32 API的标题——你最好的选择是下载/安装FRE C++编译器(例如,MIW),并参考它的头。

< P>如果你知道Perl,你可能想使用Win32::GUI模块来创建窗口和对话框。确保PrL5被包含在CygWin安装中。 从cygwin命令行运行cpan以获取cpan解释器,然后执行get win32::GUI

如果教程不是从菜单中运行的,只需将它们复制并粘贴到vi文件中,并在保存时使其可执行

例句:(简单的对话来增强)


你能更具体地说明你想做什么吗?当然,这是关于我问的另一个问题:有趣…我会试试这个。从这个例子的外观来看,它是否创建了一个弹出窗口?思考如果是的话,这可能确实是一件很棒的事情!是的,它创建了一个弹出窗口。只要确保你有win32开发包就可以了暂停。我通常会完整安装Cygwin,所以我不能马上告诉你具体是哪一个。我觉得我刚刚找到一张100美元的钞票……说真的:这正是我要找的!你也帮了我,Amardeep。谢谢!好东西!谢谢。如果有人需要,我会找到进一步的参考资料。
**To Get Familiar with win32::GUI**
===========================================
win32-gui-demos.pl for a tutorial 
man 1 win32-gui-demos.pl for an overview -or-
perldoc win32-gui-demos.pl for an overview 
perldoc win32::GUI for an intro
#!perl -w
use strict;
use warnings;

use Win32::GUI();

my $main = Win32::GUI::DialogBox->new(
    -name => 'Main',
    -text => 'Continue with Outlook Backup?',
    -width => 200,
        -height => 200
);

$main->AddButton(
    -name    => 'Default',
    -text    => 'Ok',
    -default => 1,    # Give button darker border
    -ok      => 1,    # press 'Return' to click this button
    -width   => 60,
    -height  => 20,
    -left    => $main->ScaleWidth() - 140,
    -top     => $main->ScaleHeight() - 30,
);

$main->AddButton(
    -name   => 'Cancel',
    -text   => 'Cancel',
    -cancel => 1,    # press 'Esc' to click this button
    -width  => 60,
    -height => 20,
    -left   => $main->ScaleWidth() - 70,
    -top    => $main->ScaleHeight() - 30,
);

$main->Show();
Win32::GUI::Dialog();
exit(0);

sub Main_Terminate {
    return -1;
}

sub Default_Click {
    print "OK to Proceed Selected\n";
    return 0;
}

sub Cancel_Click {
      print "Cancel Backup Selected\n";
      return 1;
}