API级Unicode GUI用于Windows / Linux / Mac OS X的C中的本机应用程序 .

我正在寻找一个简单的 Unicode , GUI , Native 应用程序,它可以在不需要任何非标准库的情况下运行,用C编译用GNU-GCC(g)编写 .

不是

我不是指一个代码源运行任何地方,而是3(Win / Linux / Mac)代码源! run-without-library(本机应用程序) .

*原生申请

应用程序可以运行而无需任何非标准库,只需要操作系统C运行时(如Windows上的MSVCRT) .

* Unicode应用程序

从右到左的窗口布局(支持从右到左阅读语言),两个按钮[Message]在消息框中显示UTF-8 stings(“اهلابالعالم”),[Exit]到... i想退出! :p

===================================

Windows解决方案(Windows 7)

编译器:MinGW g 4.5.0

命令行:

g++ -Wl,--enable-auto-import -O2 -fno-strict-aliasing -DWIN32_LEAN_AND_MEAN -D_UNICODE -DUNICODE -mwindows -Wall test.cpp -o test.exe

#include (windows.h)

#include (tchar.h)

#include (string)

typedef std::basic_string ustring;

LONG StandardExtendedStyle;

TCHAR buffer_1[1024];

TCHAR buffer_2[1024];

static HWND button_1;

static HWND button_2;

inline int ErrMsg(const ustring& s)

{

return MessageBox(0,s.c_str(),_T("ERROR"),MB_OK|MB_ICONEXCLAMATION);

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)

{

switch (uMsg)

{

case WM_CREATE:

button_1=CreateWindow(L"button",L"UTF-8 Message",WS_CHILD|WS_VISIBLE,10,10,120,25,hwnd,(HMENU)1,NULL,NULL);

button_2=CreateWindow(L"button",L"Exit",WS_CHILD|WS_VISIBLE,10,50,120,25,hwnd,(HMENU)2,NULL,NULL);

break;

case WM_COMMAND:

switch(LOWORD(wParam))

{

case 1:

_stprintf(buffer_1,L"اهلا بالعالم");

_stprintf(buffer_2,L"Hello World in Arabic !");

MessageBoxW(hwnd,buffer_1,buffer_2,MB_ICONINFORMATION|MB_OK|MB_RTLREADING|MB_RIGHT);

break;

case 2:

PostQuitMessage(0);

break;

}break;

case WM_CLOSE:

DestroyWindow(hwnd);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hwnd,uMsg,wParam,lParam);

}

return 0;

}

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR pStr,int nCmd)

{

ustring classname=_T("window");

WNDCLASSEX window={0};

window.cbSize = sizeof(WNDCLASSEX);

window.lpfnWndProc = WndProc;

window.hInstance = hInst;

window.hIcon = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(100), IMAGE_ICON, 16, 16, 0);

window.hCursor = reinterpret_cast(LoadImage(0,IDC_ARROW,IMAGE_CURSOR,0,0,LR_SHARED));

window.hbrBackground = reinterpret_cast(COLOR_BTNFACE+1);

window.lpszClassName = classname.c_str();

if (!RegisterClassEx(&window))

{

ErrMsg(_T("Failed to register wnd class"));return -1;

}

int desktopwidth=GetSystemMetrics(SM_CXSCREEN);

int desktopheight=GetSystemMetrics(SM_CYSCREEN);

HWND hwnd=CreateWindowEx(0,classname.c_str(),_T("The solution for Windows"),WS_OVERLAPPEDWINDOW,desktopwidth/4,desktopheight/4,270,150,0,0,

hInst,0);

if (!hwnd)

{

ErrMsg(_T("Failed to create wnd"));

return -1;

}

StandardExtendedStyle=GetWindowLong(hwnd,GWL_EXSTYLE);

SetWindowLong(hwnd,GWL_EXSTYLE,StandardExtendedStyle|WS_EX_LAYOUTRTL);

ShowWindow(hwnd,nCmd);

UpdateWindow(hwnd);

MSG msg;

while (GetMessage(&msg,0,0,0)>0)

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return static_cast(msg.wParam);

}

===================================

Linux的解决方案

请帮帮忙!

如何在Linux上运行应用程序而不告诉用户安装这个和本机Linux应用程序!

文件格式最多的是什么? ELF,宾..?

X11是原生的Linux GUI库?或WxWidgets,QT,GTK,gtkmm .. ??? !!!

可以在Gnome和KDE上运行吗?或需要不同的代码源?

谁知道Linux的解决方案?

===================================

适用于Mac OS X的解决方案

请帮帮忙!

我认为Mac OS X的解决方案是C with C中的Cocoa!但我必须确定!

G可以用Cocoa构建原生Mac OS应用程序吗?

linux c语言显示器api,API级别的Unicode GUI用于Windows / Linux / Mac的C语言本机应用程序...相关推荐

  1. Linux卸载搜狐,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...

    3. 随后,点击"引导",可以设置开机的启动系统了 4. 假设我们要删除win10系统,那么我们就将win10操作系统开机引导删除,选择win10然后选择"删除" ...

  2. linux下C++遍历文件夹下的全部文件;Windows/Linux下C++批量修改文件名,批量删除文件...

    Linux下 C++遍历目录下所有文件 1 rename(image_path.c_str(), image_path_new.c_str()); 2 remove(image_path_move.c ...

  3. linux php 开启curl,PHP开启curl扩展的方法:windows +Linux

    相信很多人都知道,在默认情况下PHP的curl扩展是没有开启的,windows相对来说开启都非常的简单.linux开启此扩展则很麻烦. 下面我讲分别讲一下PHP如何开启curl扩展? 同时,如果你要安 ...

  4. Windows系统中搭建Go语言开发环境详解

    目录 1.Go语言简介 2.安装Git 3.Go 工具链(编译器)安装 3.1.环境变量GOROOT 3.2.环境变量GOPATH 3.3.Go常用命令 4.包管理 4.1.go module 4.2 ...

  5. Mac版R语言入门(一)R语言入门操作

    文章更新于2023年1月29日: 视频教程--微信公众号:R语言数据分析与实践                      bilibili: R语言数据分析与实践 CSDN:ZhenniLi 第一集: ...

  6. linux网络通信移植,基于socket API的C/S通信:将Qt程序从Linux移植到windows

    Qt是一个跨平台的GUI开发语言,它是对C++在图形设计方面上的一种扩充.Qt本身包含一系列用来设计图形界面的类,并且对C++原有的类都进行了再次封装.如果你的程序采用Qt的类库,那么源程序在不同平台 ...

  7. 智能合约语言Solidity Solidity API

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity Solidity API Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对 ...

  8. 语言特性与API设计

    我平时的主要工作之一,便是编写一些基础及通用的类库,能够在项目中大量复用.换句话说,我的工作目的,是让其他开发人员可以更好地完成工作.因此,如何设计更容易使用的API是我经常要考虑的东西,偶尔也会有一 ...

  9. C语言字符串库函数api

    C语言字符串库函数api 快速的上手api是一种能力 strnset函数有错误 典型的状态函数 快速的上手api是一种能力 建立正确的程序运行示意图,(内存四区及函数调用堆栈图)是根本保障!! int ...

最新文章

  1. bigdecimal不等于0怎么写_创业计划书不知道怎么写?掌握核心逻辑是关键
  2. j2ee学习 +“云未来
  3. 【休闲游戏 实战1】推箱子PC端小游戏(附源码)
  4. pyqt5讲解2:QPushButton,QRadioButton,QCheckBox
  5. js框架页弹出页面关闭
  6. Spring Boot和数据库初始化
  7. STL运用的C++技术(6)——函数对象
  8. 前端学习(610):js执行过程
  9. 街上第一台电子计算机是,南京信息工程大学滨江学院2009级《计算机基础》(文科)a试卷(含答案)【最新】.doc...
  10. adaboost java_Adaboost的java实现 | 学步园
  11. ASP.NET C# 实现钉钉签名算法
  12. Hadoop 2.6.0 HA高可用集群配置详解
  13. Java Interview Questions (1)
  14. O2O模式成功案例分享 汲取精华化为己用
  15. win7系统如何重启服务器,云骑士解决win7系统重启IIS服务的技巧介绍
  16. 定位服务在iOS 8中不起作用
  17. Python 多张 Excel 合并为一张 Excel
  18. 浏览器崩溃原因大集合
  19. 高德地图api调用demo_高德地图定位如何调用api?
  20. 企业发放的奖金根据利润提成。

热门文章

  1. [zz]libvirt中CPU和内存的细粒度管理机制
  2. ansible的调用使用
  3. 编译安装samba4.89遇到的错误
  4. 传统运维团队转型应该注意哪些问题?
  5. ​cglib实现动态代理构建带参数的代理实例
  6. 《Ossim应用指南》入门篇
  7. android查看报错日志,android运行错误日志帮看下 不懂啊
  8. mysql二进制日志文件差不多_mysql数据同步-基于二进制日志文件和position复制点的方式...
  9. 格式工厂mac_干货|格式搞得定,论文不用愁
  10. ajax从页面向action传递json 公司--》