• 一个与X:Name 有关的错误


    时间: 9:12 2010-8-24

    背景:
     昨天已经完成图片浏览器的界面的制件部分,按计划今天要完成后台设计.
    原则:
     在使用SWE的过程考虑,其是怎么样实现 BITBLT的功能,又是怎么样方便用户的使用.
    难点:
     之前使用bitblt方法实现,所以业务逻辑那一块没有什么难点,难点主要还是在于对于SWE 框架的不熟

    悉,现在已经熟悉了单个XAML文件的框架写法,但对于一个软件当中有多个XAML文件的时候,怎么样来处理之

    间的逻辑关系,现主要表现:流程,数据的交换,与: 多个XAML显示。
     
    想法:
     利用加层来解耦的原则,使用MVP/C 的思想,流程的控件由另外一个类来进行管理,那多个XAML其是

    怎么样显示的呢,这是MS 的SWE 开发人员所以思考解决的问题,其会提供一些什么的工具,以方便我们的开发

    呢。
     我想:如果每一个XAML其是一个VISUAL HOST(也是一个XAML对应一个窗口),那么每一个XAML之间

    通信,其要使用API:SendMessage, the developer of the SWE 其会这样处理吗,其支持这种方案,但我认识这太

    低级了,且很麻烦,没有体现SWE的优点。
     如果我们将每一个XAML当作一个控件(<UserControl>),那么对于控件怎么样管理呢。具体表现为:控

    件创建,增加,删除,控件之间的Workflow,这应该是最重要的,也是难点。
     在一个软件当中,将其中一个XAML文件解析一个VISUAL HOST, 其它XAML 通过 VISUAL TREE,然后

    作为添加到VISUAL HOST当中。SWE 的开发人员其提供了:XRCustomUserControlImpl<a,b> 来完成这个任务。 这

    些任务是由一个类负责管理。

    实现假想:
     MVC的思想,CONTROL 其通过依赖注入得到 MainPage(mainpage.xaml 解析成Visual host)对象的引用

    ,然后CONTROL 通过MainPage 的引用来操作控件Workflow。


    寻找实现方案:
     通过重新思考SWE的开发流程与对于XAML2CPP.EXE所写框架的反思,

    现在SL 当中,其的C#代码,其既有UI事件处理代码,也有自定义事件代码。


    class Control : public IControl
    {
    protected:
     MainPage *page;

    public:
     Control(MainPage *page)
     {
      this->page = page;  
      // page 成员的初始化
      
     }
    public :
     void Initialize()
     {
      
     }

    }

    对于SWE当中的委托机制,一定要认真的学习与思考

    new与CreateObject 其之间是没有什么区别的。

    下一个软件,其要把界面制作,业务逻辑,控制, 分析清楚了,然后再来处理具体组织与实现关系。 

    错误 1 error C2143: 语法错误 : 缺少“;”(在“*”的前面)

    现在遇到了C++ 的头文件相互包含的经典问题,( A 包含B ,B包含C,C包含A)

    时间: 9:12 2010-8-25

    在我的项目当中出现头文件相互包含的原因: 我将类的定义与实现均写在一个文件当中。
    解法:将类的定义与实现分别写在两个文件当中。
    在头文件当中,当A头文件当中包含B文件类的指针与引用的时候,在A头文件当中写一个类向前引用(CLASS B )
    就可以了,没有必要写一个#include "B.h",而将#include "B.h" 写在A.CPP当中。

    什么情况:向前引用就可以了。
    什么情况:需要使用#include
    /////////////////////////
    PAGE:
    http://hi.baidu.com/shilyx/blog/item/c1e3f7f277e29811b17ec5f2.html
    三、两点原则
          头文件包含其实是一想很烦琐的工作,不但我们看着累,编译器编译的时候也很累,再加上头文件中常常出现

    的宏定义。感觉各种宏定义的展开是非常耗时间的,远不如自定义函数来得速度。我仅就不同头文件、源文件间

    的句则结构问题提出两点原则,仅供参考:

    第一个原则应该是,如果可以不包含头文件,那就不要包含了。这时候前置声明可以解决问题。如果使用的仅仅

    是一个类的指针,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了

    。因为指针这一数据类型的大小是特定的,编译器可以获知。

    第二个原则应该是,尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针

    ,在类A的头文件中使用了类B的前置声明并便宜成功,那么在A的实现中我们需要访问B的具体成员,因此需要包

    含头文件,那么我们应该在类A的实现部分(CPP文件)包含类B的头文件而非声明部分(H文件)。
    //////////////////////////////////


    看来在C++ 当中,还接受将类的定义与实现分开的规则吧,以免得麻烦。

    现在问题:
    怎么样查找文件,怎么样去保存文件与目录的路径,怎么样去得到这些数据

    WINCE R3  当中,
    对于使用CString , std::wstring ,TCHAR  之间的问题

    本人之前,一直使用MFC开发,且一直认为CString 其是与MFC绑定了。
    原因不是这样的呀,
    CString 其是属于 ATL.

    还有一个误认为的: 认为WINCE R3 上的WIN32的开发:pure c++  And api

    其实我们可以使用ATL, pure c++ and api, 对于模板容器的使用:ATL 与STL。

    应该怎么样选择呢.
    好久没有看到使用CString ,心里一阵惊喜,看到老朋友了,但后来想问一句:老朋友,你不是在MFC当中,怎么也

    跑到WIN32当中了呢。

    ==》 在使用容器的时候,要选择哪一种容器版本呢.是STL 还是ATL

    其实没有必要纠结,能够使用就使用呀,不要把什么东西(人,技术,书...)神化了(发现现在社会很喜欢造神),自己

    应该端正态度,这些东西都是用我们服务的,而不应该反过来。

    一个类其只是负责处理一个任务,

    错误 1 error C2871: “std”: 具有该名称的命名空间不存在
    我遇到的情形:
    std::string str;
    但没有#include <string>

    C++ 方法当中的字符串形参的书写,感受:
    const char *
    char *
    当只是要传入且不修改,最好使用const char *, 因为string.c_str() 其是返回 const char *

    当前我的环境有什么资源使用,我们就要完全利用起来,

    对于工作人的定义:应该是善于利用环境当中所提供的资源,来完成任务。

    时间:14:58 2010-8-26

    问题:

    1.对于TextBlock的foreground 设置红色,为什么在使用SetText之后变成了黑色呢.(求解)

    2. 当向网格(GRID)当中添加元素的时候,元素之前紧靠在一起,通过什么附加属性来使用其之间有空间.
     ==> 使用 控件的SetMargin 方法

    3. 同2. 且zindex 其的值是多少呢


    4. 代码的书写风格很乱,变量命,方法,类的命名也很乱,=>尽量不要写注释,要让代码自解释,都向MSDN学

    习其是怎么样定义的。

    -2142830490

    5. 向GRID当中动态的添加几个元素,但其只是显示一个元素, 我将创建自定义控件改成BUTTON,其就能够成功显

    示出相应数目的BUTTON.
    ==》实在没有方法了,重新做一个新的控件,成功了,
    通过对着分析:
    <UserControl
      x:Name ="xxx"/>
    <UserControl
     />

    其两者是有很大的差别的呀

    添加几个元素,但其只是显示一个元素 ==>其是与x:Name 有关


    自定义控件有关错误:
    自定义控件其定义在PAGE.XAML当中,自定义控件的注册

    自定义控件(如Card) 其的XAML文件当中有这样一行:
    x:Class="ImageBrowserPro.card"

    那么在下面方法当中,要写成下列的形式
    static HRESULT Register()
      {
        return XRCustomUserControlImpl<A,B>::Register(__uuidof(B), L"card", L"clr-namespace:ImageBrowserPro");
      }

  • 相关阅读:
    多进程或多线程实现并发
    linux服务器配置pyspider出现Could not run curl-config 的解决方式
    js的逆向解析
    修改linux终端命令行各字体颜色
    利用Centos服务器来搭建自己的splash,不再被安装的各种环境繁琐而担忧
    配置 Docker 加速器:适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1
    一分30秒 kali 开机显示 a start job is running for dev-disk 处理
    虚拟机Ubuntu16.04无法进入图形界面 The system is running in low-graphics mode
    vmware ubuntu硬盘空间不够用,空间扩展
    pip错误-failed to create process/fatal error in launcher
  • 原文地址:https://www.cnblogs.com/pengxinglove/p/1809765.html
Copyright © 2020-2023  润新知