linux c语言显示器api,API级别的Unicode GUI用于Windows / Linux / Mac的C语言本机应用程序...
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语言本机应用程序...相关推荐
- Linux卸载搜狐,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...
3. 随后,点击"引导",可以设置开机的启动系统了 4. 假设我们要删除win10系统,那么我们就将win10操作系统开机引导删除,选择win10然后选择"删除" ...
- linux下C++遍历文件夹下的全部文件;Windows/Linux下C++批量修改文件名,批量删除文件...
Linux下 C++遍历目录下所有文件 1 rename(image_path.c_str(), image_path_new.c_str()); 2 remove(image_path_move.c ...
- linux php 开启curl,PHP开启curl扩展的方法:windows +Linux
相信很多人都知道,在默认情况下PHP的curl扩展是没有开启的,windows相对来说开启都非常的简单.linux开启此扩展则很麻烦. 下面我讲分别讲一下PHP如何开启curl扩展? 同时,如果你要安 ...
- Windows系统中搭建Go语言开发环境详解
目录 1.Go语言简介 2.安装Git 3.Go 工具链(编译器)安装 3.1.环境变量GOROOT 3.2.环境变量GOPATH 3.3.Go常用命令 4.包管理 4.1.go module 4.2 ...
- Mac版R语言入门(一)R语言入门操作
文章更新于2023年1月29日: 视频教程--微信公众号:R语言数据分析与实践 bilibili: R语言数据分析与实践 CSDN:ZhenniLi 第一集: ...
- linux网络通信移植,基于socket API的C/S通信:将Qt程序从Linux移植到windows
Qt是一个跨平台的GUI开发语言,它是对C++在图形设计方面上的一种扩充.Qt本身包含一系列用来设计图形界面的类,并且对C++原有的类都进行了再次封装.如果你的程序采用Qt的类库,那么源程序在不同平台 ...
- 智能合约语言Solidity Solidity API
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity Solidity API Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对 ...
- 语言特性与API设计
我平时的主要工作之一,便是编写一些基础及通用的类库,能够在项目中大量复用.换句话说,我的工作目的,是让其他开发人员可以更好地完成工作.因此,如何设计更容易使用的API是我经常要考虑的东西,偶尔也会有一 ...
- C语言字符串库函数api
C语言字符串库函数api 快速的上手api是一种能力 strnset函数有错误 典型的状态函数 快速的上手api是一种能力 建立正确的程序运行示意图,(内存四区及函数调用堆栈图)是根本保障!! int ...
最新文章
- bigdecimal不等于0怎么写_创业计划书不知道怎么写?掌握核心逻辑是关键
- j2ee学习 +“云未来
- 【休闲游戏 实战1】推箱子PC端小游戏(附源码)
- pyqt5讲解2:QPushButton,QRadioButton,QCheckBox
- js框架页弹出页面关闭
- Spring Boot和数据库初始化
- STL运用的C++技术(6)——函数对象
- 前端学习(610):js执行过程
- 街上第一台电子计算机是,南京信息工程大学滨江学院2009级《计算机基础》(文科)a试卷(含答案)【最新】.doc...
- adaboost java_Adaboost的java实现 | 学步园
- ASP.NET C# 实现钉钉签名算法
- Hadoop 2.6.0 HA高可用集群配置详解
- Java Interview Questions (1)
- O2O模式成功案例分享 汲取精华化为己用
- win7系统如何重启服务器,云骑士解决win7系统重启IIS服务的技巧介绍
- 定位服务在iOS 8中不起作用
- Python 多张 Excel 合并为一张 Excel
- 浏览器崩溃原因大集合
- 高德地图api调用demo_高德地图定位如何调用api?
- 企业发放的奖金根据利润提成。
热门文章
- [zz]libvirt中CPU和内存的细粒度管理机制
- ansible的调用使用
- 编译安装samba4.89遇到的错误
- 传统运维团队转型应该注意哪些问题?
- ​cglib实现动态代理构建带参数的代理实例
- 《Ossim应用指南》入门篇
- android查看报错日志,android运行错误日志帮看下 不懂啊
- mysql二进制日志文件差不多_mysql数据同步-基于二进制日志文件和position复制点的方式...
- 格式工厂mac_干货|格式搞得定,论文不用愁
- ajax从页面向action传递json 公司--》