精华内容
下载资源
问答
  • VC在一个工程中实现多语言版本(转)

    千次阅读 2010-07-07 11:49:00
    VC在一个工程中实现多语言版本作者:朱勤武下载源代码 前段时间笔者因为做一个程序,客户要求要有中英文...第一步、创建中英文版本资源文件 我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的

     

    VC在一个工程中实现多语言版本


    作者:朱勤武

    下载源代码

      前段时间笔者因为做一个程序,客户要求要有中英文版本,开始以为要做二个工程,只是资源文件不同,但是发现这样一个工程更新另外一个也要更新,实在是很麻烦 ,后来经过网上查找资料与自己亲身实验,发现其实只要在一个工程中就可以实现。但是这个工程中要有两个资源文件,当编译不同版本时,程序可以自动链接不同资源文件 。下面把具体的方法写出来。供大家参考一下。

    第一步、创建中英文版本资源文件

      我们先创建第一个中文版本工程,假设工程名称为 Example,在向导第一步的“What language would you like you resource in” 选择中文 (如下图),其它使用缺省值。



      然后在工程中把 Example.rc 删除,这里虽然删除了文件,但实际上在工程文件目录文件还是存在的。进入工程目录下把资源文件名改成Example_Ch.rc,再在 VC 编译器中加入 Example_Ch.rc 文件 ,关闭工程。
      然后再创建一个同名的英文版本工程。也就是在选择资源语言时选择英语(可以保存在不同的目录下) 



      创建完后,把英文版本目录下的 Example.rc 文件拷贝到中文工程的目录下,其实我们就只是要这个资源文件。并把名称改为 Example_En.rc。 

    第二步、在工程中设置版本信息

      打开中文件工程,把英文资源文件添加进工程,在添加时会有提示出现,不要理会,按确认就行。
      选择菜单 Build->Configurations,增加一个工程配置,在Configuration中输入 Debug English 在 Copy Setting from 中选择 Debug 就可以(见下图),使用相同的方法,再增加一个 Debug Chinese 配置,并把原来的 Debug 删除。




    第三步、设置工程信息

      选择菜单 Project->Settings,在左边的 Setting For 中选择 Debug Chinese 在 Generatl 属性页的 Intermediate files 中输入 Debug Chinese,在 Output files 中输入 Chinese。在 Resource 属性页的 Resource file name 中输入 Debug Chinese/Example_Ch.res,(见下图)其它缺省就行。
      用同样的方法在来设置英文版本信息。在左边的 Setting For 中选择 Debug Enghlis 在 Generatl 属性页的 Intermediate files 中输入 Debug Enghlis,在 Output files 中输入 Enghlis。在 Resource 属性页的 Resource file name中输入 Debug English/Example_En.res,其它缺省就行。

    本程序在 WIN2000+VC6。0环境下通过。




    第四步、修改 DSP 文件,用记事本打开工程下的 Example。dsp 文件

    找到如下行:

    SOURCE=./Example_ch.rc
    
    # End Source File
    # Begin Source File
    
    SOURCE=./Example_en.rc
    # PROP Exclude_From_Build 1
    
    # End Source File
    # Begin Source File
    

    在SOURCE=./Example_ch.rc行后面加入下面代码

    SOURCE=./Example_ch.rc
    
    !IF  "$(CFG)" == "Example - Win32 Debug English"
    
    # PROP Exclude_From_Build 1
    
    !ELSEIF  "$(CFG)" == "Example - Win32 Debug Chinese"
    
    !ENDIF 
    

    在SOURCE=./Example_en.rc行后面加入下面代码:

    !IF  "$(CFG)" == "Example - Win32 Debug English"
    
    !ELSEIF  "$(CFG)" == "Example - Win32 Debug Chinese"
    

    第五步、现在打开工程,按照不同的要求编译不同版本就行了,比如这个时候我们要英文版本

      在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug English 即可,如果要中文版本 , 在编译时选择 Builder->Set Active configuration 中选择 Win32 Debug Chinese 即可。

    结论

       如果以后要添加资源,只要在 Resourch。h 文件中定义资源号,然后在中英文资源文件中添加相应的资源串就行,当然这个时候不能直接在工作区的 Resourc 中添加 ,而要用记事本等工具打开资源文件再添加哟。

    本程序在Win2000,VC++6.0英文版本下编译通过。

     

     

    原文地址:http://www.vckbase.com/document/viewdoc/?id=1079

     

    展开全文
  • 网上线程注入的例子,不少是编译不了或运行不了。而且没有可用C#的注入例子(找到一个,根本不能用)。钩子程序,要么要求装驱动,要么程序本身有...如果要改变隐藏文件的名称,请在工程2的钩子编译中,修改相关代码。
  • 网上dll注入的例子,不少是编译不了或运行不了。而且很少可用C#的注入例子(找到一个,根本不能用)。底层的钩子程序,要么要求装驱动,要么程序...如果要改变隐藏文件的名称,请在工程2的钩子编译中,修改相关代码。
  •  VC中调用CHM帮助必须用API函数HtmlHelp(),此函数在LIB库函数内,为方便调用,我把它整体打包了,您要做的就是把它放到VC工程所在的目录,然后包含CHMHelp.h头文件即可。 系统包含文件如下: #include "CHMHelp....
  • 十一 从zip压缩文件中打开VC工程 通常从网上下载的例子代码都是压缩在zip文件中的,查看zip文件中的项目通常要将代码解压缩到临时目录中然后用VC打开项目,“TabBars”提供了不离开VC的集成开发环境就能够查看zip...
  • 在一些项目中,考虑到系统的安全性和稳定性,经常要封装一些...填好工程名称即可选择工程类型,如果没有特别的要求,选择一个空工程即可。会看到这里和标准的控制台工程一样,没有任何系统默认建立的文件 下面就...

     


    在一些项目中,考虑到系统的安全性和稳定性,经常要封装一些DLL或者LIB库供别人使用,那么怎么制作DLL或者LIB文件呢?今天特酷吧根据自己的实际情况给大家讲解下基本的制作方法。
    以下是我亲自操作的记录:
    1,动态库dll的编写方法:
    新建一个动态链接库:


    填好工程名称即可选择工程类型,如果没有特别的要求,选择一个空工程即可。
    会看到这里和标准的控制台工程一样,没有任何系统默认建立的文件


    下面就需要我们添加一些文件。
    建立动态库dll文件 , 我们不需要写main函数。只需要一个一个的实现我们需要实现的接口函数即可.这里需要用到
    extern "C" __declspec(dllexport)  说明 。 在函数的声明中加上extern "C" __declspec(dllexport)就可以将该函数导出。
    例如 :
    新建function.h , function.cpp
    function.h
    #ifndef __FUNCTION_H__
    #define __FUNCTION_H__
    #include<afx.h>
    #include"include.h"
    //3DES加密函数.24字节的key(导出函数)
    extern "C" __declspec(dllexport)HANDLE Open();
    #endif
    而在function.cpp中可以写
    extern "C" __declspec(dllexport) HANDLE Open()
    {
     HANDLE DevHandle = INVALID_HANDLE_VALUE;
     DevHandle = OpenDevice();
     return DevHandle;
    }
    完成之后编译 , 就可以在debuf或者release文件夹中看到dll文件了。
    使用dll文件也很简单:将生成的dll文件放在应用程序的工程目录,我们还需要上一步的导出头文件。
    #include"AppTest.h"
    //#pragma   comment(lib, "AppTest.lib ")
    HINSTANCE MyDll;
    HANDLE Encryp;
     //打开dll文件
     MyDll = LoadLibrary("AppTest.dll");
     if(MyDll == NULL)
     {
      exit(0);
     }
     typedef HANDLE(*DllFun)();//函数指针,注意要和原函数的原型一制
     DllFun MyFun;
     MyFun = (DllFun)GetProcAddress(MyDll , "Open");//获取该函数的虚拟地址
     if(MyFun == NULL)
     {
       AfxMessageBox("获取dll函数失败!");
       exit(0);
     }
     Encryp = MyFun();//调用MyFUn实际上是调用了dll中的OpenDog
     if( Encryp == INVALID_HANDLE_VALUE )
     {
    exit(0);
     }


    静态库的创建与应用
    新建一个静态库工程


    没有什么注意的选项 ,默认即可。完成之后 , 工程目前也是什么文件都没有 , 需要我们自己添加。我们也不写main函数,只需要写功能函数的实现。然后在头文件中用extern修饰 , 编译即可。
    如我们新建function.h  , function.cpp文件。
    function.h
    #ifndef __FUNCTION_H__
    #define __FUNCTION_H__
    #include<afx.h>
    #include"include.h"
    extern   HANDLE OpenDog();
    #endif
    function.cpp
    HANDLE OpenDog()
    {
     HANDLE DevHandle = INVALID_HANDLE_VALUE;
     DevHandle = OpenDevice();
     return DevHandle;
    }
    如此,编译即可。
    但是我在这里遇到了很多问题 , 编译的时候总是提示错误。这主要是一些命名空间的重名造成的。这种错误很麻烦。这里给出我在编译lib时的工程设置。

     

     

     


    具体的要特别注意到第二张显示的忽略库
    lib静态库的使用:使用#pragma   comment(lib, "AppTest.lib")后 , 直接调用静态库的函数即可。
    #include"AppTest.h"
    #pragma   comment(lib, "AppTest.lib")
    HANDLE EncrypDog;
     EncrypDog = OpenDog();
     if( EncrypDog == INVALID_HANDLE_VALUE )
     {
       exit(0);
     }

     

     


    本文来源于特酷吧http://www.tekuba.net/, 原文地址:http://www.tekuba.net/program/179/

     

    展开全文
  • 这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
  • 石头剪刀布 C++工程

    2013-06-27 10:52:08
    河北工业大学计算机软件技术基础(VC) 课程设计任务书 题目:人机对战——石头剪刀布 目的与要求 目的 通过编写该程序,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识...
  • 转自https://blog.csdn.net/ROVAST/article/details/40296491在设计对话框资源的时候,默认的字体或者大小往往不能满足我们的要求在网上有大把的通过调用font类来...工程名称为rcTest2、直接编译3、打开工程目录下的...

    转自https://blog.csdn.net/ROVAST/article/details/40296491

    在设计对话框资源的时候,默认的字体或者大小往往不能满足我们的要求


    在网上有大把的通过调用font类来更改其字体还有大小的文章,本文对此不涉及


    本文提出更改VC6资源文件的办法来修改默认的字体和大小。


    1、新建一个MFC工程,为基本对话框类型。工程名称为rcTest


    2、直接编译


    3、打开工程目录下的rcTest.rc文件

    搜索“IDD_ABOUTBOX DIALOG DISCARDABLE”,可以看到

    CAPTION "关于 rcTest"
    FONT 9, "宋体"


    我们更改FONT值的9为12,即可更改ABOUT对话框中显示字体的大小!


    4、运行程序,右击任务栏图标,选择关于。我们观测到about对话框中的文字确实变大了


    运用上述的办法,可以修改一个对话框资源中所有字体的大小和字体,只要找到对应对话框,按照上述的办法,即可修改!

    版权声明:本文为博主原创文章,如需转载,请注明出处。 https://blog.csdn.net/ROVAST/article/details/40296491
    展开全文
  • /*Copyright (c) 2015, 烟台大学计算机...* 文件名称:H1.cpp * 作者:辛志勐 * 完成日期:2015年9月18日 * 版本号:vc6.0 * 问题描述:将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O
    /*Copyright (c) 2015, 烟台大学计算机与控制工程学院      
    * All rights reserved.      
    * 文件名称:H1.cpp      
    * 作者:辛志勐      
    * 完成日期:2015年9月18日      
    * 版本号:vc6.0      
    * 问题描述:将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。    
    * 输入描述:无      
    * 程序输出:线性表的结果      
    */
    

     

    #include <stdio.h>
    #include <malloc.h>

    #define MaxSize 50
    typedef int ElemType;
    typedef struct
    {
        ElemType data[MaxSize];
        int length;
    } SqList;

     

    void CreateList(SqList *&L, ElemType a[], int n);//用数组创建线性表
    void InitList(SqList *&L);//初始化线性表InitList(L)
    bool ListEmpty(SqList *L);//判定是否为空表ListEmpty(L)
    void DispList(SqList *L);//输出线性表DispList(L)
    //用数组创建线性表
    void CreateList(SqList *&L, ElemType a[], int n)
    {
        int i;
        L=(SqList *)  malloc(sizeof(SqList));
        for (i=0; i<n; i++)
            L->data[i]=a[i];
        L->length=n;
    }
    //判定是否为空表ListEmpty(L)
    bool ListEmpty(SqList *L)
    {
        return(L->length==0);
    }


    //输出线性表DispList(L)
    void DispList(SqList *L)
    {
        int i;
        if (ListEmpty(L)) return;
        for (i=0; i<L->length; i++)
            printf("%d ",L->data[i]);
        printf("\n");
    }

    void move(SqList *&L)
    {
        int i=0,j=L->length-1;
        ElemType tmp;
        while (i<j)
        {
            while ((i<j) && (L->data[j]%2==0))  //从右往左,找到第一个奇数(偶数就忽略不管)
                j--;
            while ((i<j) && (L->data[i]%2==1))  //从左往右,找到第一个偶数(奇数就忽略不管)
                i++;
            if (i<j)   //如果未到达“分界线”,将右边的奇数和左边的偶数交换
            {
                tmp=L->data[i];
                L->data[i]=L->data[j];
                L->data[j]=tmp;
            }
        }   //待循环上去后,继续查找,并在必要时交换
    }


    //用main写测试代码
    int main()
    {
        SqList *sq;
        ElemType a[3]= {5,8,7,0,2,4,9,6,7,3};
        CreateList(sq, a, 10);
        printf("操作前 ");
        DispList(sq);

        move(sq);

        printf("操作后 ");
        DispList(sq);
        return 0;
    }

    运行结果

    知识点总结:用到了三次while循环,其方法是将第一个偶数与最后一个奇数交换,这样一次交换可以减轻程序的复杂度。

    学习心得:学习之中难免会遇到不懂的函数,学习之中也少不了百度这位老师。

    展开全文
  • /*Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:H1.cpp ...* 问题描述:删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1
  • 1> 在匹配目标类型的范围内没有具有该名称的函数 1>D:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlcache.h(3044) : error C2144: 语法错误 : “unsigned long”的前面应有“)” 1>D:\Program ...
  • 文件名称:text.cpp 作者:黄潇慧 完成日期:2017年11月9日 版本:vc6.0 问题描述: 【项目 - 操作用邻接表存储的图】 假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的...
  • 文件名称:text.cpp 作者:黄潇慧 完成日期:2017年10月17日 版本:vc6.0 问题描述: 设从键盘输入一整数序列a1,a2,…an,试编程实现:当ai>0时,ai进队,当ai时,将队首元素出队,当ai=0时,表示输入...
  • 石头剪刀布小游戏

    2013-06-27 10:54:14
    河北工业大学计算机软件技术基础(VC) 课程设计任务书 题目:人机对战——石头剪刀布 目的与要求 目的 通过编写该程序,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识...
  • 用网上找到的一个MFC改工程名称的小工具,很实用。如果你想使用本框架就可以用它来改成你想要的工程名了。 4. 未使用本框架的类似功能简化程序 没有使用框架的程序,实现的功能和Demo类似。但是运行之后改变窗口...
  • 用网上找到的一个MFC改工程名称的小工具,很实用。如果你想使用本框架就可以用它来改成你想要的工程名了。 4. 未使用本框架的类似功能简化程序 没有使用框架的程序,实现的功能和Demo类似。但是运行之后改变窗口...
  • 二进制XML存储方案

    2008-09-25 09:48:50
    BinXML-src.zip包括两部分,一部分是vc工程,一部分是java的工程,在Visual C++6.0和eclipse+JDK1.4中都已编译、运行通过。大家可以运行BinXML-bin.zip里面的exe程序,测试一下BinXML文件的加载和保存功能。 对象...
  • Quartus_II使用教程

    热门讨论 2012-11-26 23:20:43
    如果不取和工程名相同名称的波形图名称,将无法进行波 形仿真。 波形仿真完后,出来一个类似波形仿真对话框的界面,他的label 名称为:simulation如 图16. 图16 会发现该波形图比原波形图多出了8个信号,...
  • 代码语法错误分析工具pclint8.0

    热门讨论 2010-06-29 07:00:09
    它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写...
  • 在软件上这主要要求提高字符识别率,同时提高软件的运行速度,提高实时性。相信随着研究的深入,LPR技术定会走向成熟。 文献[3]中阐述了目前国内外汽车牌照定位与识别技术主要采用软硬结合方式和软件方式两种技术...
  • 将整理好的工程clone多份,删除.git,在settings.gradle中删除不需要的组件名称,然后在每份源码中保留不同的组件,重新上传仓库,完成改版。 关于工具类改进的一些想法: 考虑了很多次是否改进,最终个人决定不...
  • 这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
  • 这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
  • 这是一套是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。...
  • RFC中文文档-txt

    2009-09-11 14:56:56
    RFC1988 有条件地授予权利给特殊的HP专利于连接Internet工程特遣队的Internet-标准网络管理框架中 RFC1993 PPP G和alf FZA 压缩 协议 RFC1994 PPP挑战握手身份验证协议 (CHAP) RFC1997 BGP 组属性 RFC1998 BGP 社区...
  • 中文版RFC,共456

    2009-04-19 22:56:29
    RFC1988 有条件地授予权利给特殊的HP专利于连接Internet工程特遣队的Internet-标准网络管理框架中 RFC1993 PPP G和alf FZA 压缩 协议 RFC1994 PPP挑战握手身份验证协议 (CHAP) RFC1997 BGP 组属性 RFC1998 BGP 社区...
  • RFC1988 有条件地授予权利给特殊的HP专利于连接Internet工程特遣队的Internet-标准网络管理框架中 RFC1993 PPP G和alf FZA 压缩 协议 RFC1994 PPP挑战握手身份验证协议 (CHAP) RFC1997 BGP 组属性 RFC1998 BGP ...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    e. 如有可能,请建立一个存储商品名称和数量的文本文件,并为二叉搜索树建立一个成员函数SetupInventory(),用于从该文本文件中读取库存商品的数据, 实验报告要求: 1、 按要求记录下二叉搜索树的完整实验...
  • 千里马酒店前台管理系统V7使用手册

    热门讨论 2011-06-16 14:09:38
    千里马酒店管理系统是按照严格规范的软件工程的大型团队开发流程设计出来的软件产品,有别于一般“作坊式”的小规模软件开发。在千里马的研发队伍中,除了优秀的系统设计师、高级程序员等技术人员外,也包括来自国内...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

vc工程名称要求