分子图形软件MOL4D Ribbons

MOL4D分子图形系列软件 Ribbons

MOL4DP介绍

 这是一个为研究蛋白质而设计的分子图形软件MOL4D,基本型MOL4D也能用它提供的模型来显示蛋白质的原子级的结构,但不能提取它们的主链及高级结构,因而也无法显示它们。MOL4DP是专门为研究蛋白质而设计的分子图形软件,它在MOL4D的基础之上,再加以下功能:
  1. 为适应蛋白质分子的需要,最大可显示包含6000个原子的分子(1995年,在IBM-386机器上,仅4M内存,使用TVGA8900显卡);

应用空间-AppSpace

缘起

现在操作系统越来越庞大,我们自己写的个小程序可能就只做一件事情,完全没有必要外带安装一个大几十G的操作系统,而且为了操作系统,要投入一笔不小的用于高性能硬件和购买操系统费用,这在很多时候是没有必要的,特别是工业设备上。

win32之全屏窗口

游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <windows.h>

void RegisterMyClass();
LRESULT CALLBACK MainWndProc(HWND hwnd, 
    UINT uMsg, 
    WPARAM wParam, 
    LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
    // 注册窗口类
    RegisterMyClass();

    // 创建窗口
    HWND hwnd = CreateWindow(
        TEXT("MainWindow"), // 类名
        L"我的应用程序", // 窗口标题文字
        WS_POPUP, // 窗口外观样式
        0, // 窗口相对于父级的x坐标
        0, // 窗口相对于父级的y坐标 GetSystemMetrics (SM_CXSCREEN):获取屏幕宽度
        GetSystemMetrics(SM_CXSCREEN), // 窗口的宽度 GetSystemMetrics(SM_CYSCREEN):获取屏幕高度
        GetSystemMetrics(SM_CYSCREEN),  // 窗口的高度
        NULL, // 没有父窗口
        NULL, // 没有菜单
        hInstance, // 当前应用程序的实例句柄
        NULL); // 没有附加数据

    if (hwnd == NULL)
    {
        return 0;
    }

    // 显示窗口
    ShowWindow(hwnd, SW_NORMAL);

    // 更新窗口
    UpdateWindow(hwnd);

    // 消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

void RegisterMyClass()
{
    WNDCLASS wc;

    wc.lpszClassName = TEXT("MainWindow");
    wc.lpfnWndProc = MainWndProc;
    wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
    wc.hInstance = NULL;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    /*
    白色画刷 (HBRUSH)(COLOR_WINDOW + 1);
    黑色画刷 
    */
    wc.hbrBackground = (HBRUSH)(GetStockObject(BLACK_BRUSH));
    wc.lpszMenuName = TEXT("FirstWin32");
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;

    RegisterClass(&wc);
}

LRESULT CALLBACK MainWndProc(HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_PAINT:
        break;
    case WM_DESTROY:
        PostQuitMessage(uMsg);
        break;
    default:
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
        break;
    }
}

关键点:

Sublime text 是用什么语言开发的?

非常喜欢sublime text这个软件,这个软件小巧快速,用来的很顺手,在机器配置不是那么好的情况下,也能完美的运行。我试过在在winxp的古董电脑上运行,照样能顺畅的运行,这个很了不起,说明作者对软件的性能花了很大的心思,不像现在其他的程序员,写的软件完全不考虑硬件的情况,不会去为客户节省硬件资源。作为一个老程序员,这个是很难接受的。
所以我比较好奇,sublime是用什么语言编写的。
下面是我找到到网上资料。

C语言用GCC编译报错error: conflicting types for XXX解决办法

GCC编译报错如下:

报错信息

1
Application\APP_Common.h|135|error: conflicting types for 'KeyboardNavigation1'|

原因分析:

  1. 函数使用的位置位于声明之前,或未声明函数原型就使用函数;

这种情况往往出现在函数实现文件中,未在头部声明的函数或声明的位置位于函数使用的位置之前;
容易忽略的是结构体的定义也需要放在使用位置之前。

C语言的结构体前置声明,?C语言的不完整类型和前置声明

声明与定义(Declaration and Definition)

开始这篇文章之前,我们先弄懂变量的declaration和definition的区别,即变量的声明和定义的区别。

一般情况下,我们这样简单的分辨声明与定义的区别:建立存储空间的声明称之为“定义”,而把不需要建立存储空间的称之为“声明”。

C语言简单介绍

语言简介

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。