DEV-CPP使用指南

DEV-CPP是一款免费的软件,它的IDE界面是由Dephi编写的,速度不错,而且简单明了,所以可以是Visual Studio 的一个简易替代品。

下面主要说说如何使用这个软件。我使用的是Dev-C++ 5.0 beta 9.2 (4.9.9.2)从网上可以免费下载。

 

1.        HelloWorld的尝试

1. 首先打开软件,File > New > Project,选择Console Application,并起名为FirstProject

2. 然后保存,生成了 FirstProject.dev 的工程文件。

3. 在左侧的Project下面,系统自动添加了Main.cpp文件,往里面写下如下的代码:

#include <iostream>
using namespace std;  
//It means the cout and endl is in std liberary!
//The alternative way of "Using namespace std" is using "::";
//using std:cout;
//using std:endl;
//But if you write another way different with the 2 ways above,then
//there will be problem. Please have a try.This is big difference between
//C and C++
int main(void)
{
    cout<<"Hello!\n";
    cout<<"Welcome to c++!\n";
    cout<<"In C++,the \"char\" type is "<<sizeof(char)<<" bytes"<<"\n";
    cout<<"In C++,the \"short\" type is "<<sizeof(short)<<" bytes"<<"\n";
    cout<<"In C++,the \"int\" type is "<<sizeof(int)<<" bytes"<<"\n";
    cout<<"In C++,the \"long\" type is "<<sizeof(long)<<" bytes"<<"\n";
    cout<<"In C++,the \"float\" type is "<<sizeof(float)<<" bytes"<<"\n";
    cout<<"In C++,the \"double\" type is "<<sizeof(double)<<" bytes"<<"\n";
    cout<<"In C++,the \"long double\" type is "<<sizeof(long double)<<" bytes"<<"\n";
    system("PAUSE");
}

4. 在工具栏里面点击 Execute > Compile 来编译文件,接着通过测试后,点击Execute > Run.

5. 这样程序运行成功,会弹出一个DOS的界面,显示如下信息:

 

 

2.         DLL的编译和引用

在前文中我多次写到了用VC编译DLL文件,但是DEV-CPP也是一个很好用的工具。

1. 首先打开软件,File > New > Project,选择DLL,并起名为DLLProject

2. 然后保存,生成了 DLLProject.dev 的工程文件。

3. 在左侧的Project下面自动生成了两个文件:dll.h dllmain.cpp

4. 我们往dll.h中写下如下的代码:

#ifndef _DLL_H_

#define _DLL_H_

 

#if BUILDING_DLL

# define DLLIMPORT __declspec (dllexport)

#else /* Not BUILDING_DLL */

# define DLLIMPORT __declspec (dllimport)

#endif /* Not BUILDING_DLL */

 

class DLLIMPORT DllClass

{

public:

    DllClass();

    virtual ~DllClass(void);

    int Dllsum(int a,int b);

private:

};

DLLIMPORT int Fsum(int a,int b);

 

#endif /* _DLL_H_ */

 

我的目的是导出两个东西,一个是Class,一个是FsumFunction

5. 我们往dllmain.cpp中写下如下的代码:

/* Replace "dll.h" with the name of your header */

#define BUILDING_DLL 1

#include "dll.h"

#include <windows.h>

 

DllClass::DllClass()

{

}

DllClass::~DllClass ()

{

}

int DllClass::Dllsum(int a,int b)

{

    return a+b;

}

DLLIMPORT int Fsum(int a,int b)

{

    return a+b;

    MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);               

}

BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,

                       DWORD reason        /* Reason this function is being called. */ ,

                       LPVOID reserved     /* Not used. */ )

{

    switch (reason)

    {

      case DLL_PROCESS_ATTACH:

        break;

 

      case DLL_PROCESS_DETACH:

        break;

 

      case DLL_THREAD_ATTACH:

        break;

 

      case DLL_THREAD_DETACH:

        break;

    }

 

    /* Returns TRUE on success, FALSE on failure */

    return TRUE;

}

6. 然后编译,生成了 DLLProject.dlllibDLLProject.a(相当于VC生成的.lib文件)dll.h 这三个文件是最主要的文件,用来被其他程序调用。还有一个文件叫做libDLLProject.def,从这里可以看出生成了哪些对外的接口。.lib .h 总是搭配使用的,从他们的身上我们可以看到.dll中有哪些接口,但他们本身并不是代码的实现者,.dll才是。

 

7. 下面我们再新建一个Console Application Project,命名为Test.dev

 

8. 然后在Main.cpp 中写下如下的代码:

#include <iostream>

#include <stdio.h>

#include <stdlib.h>

#include "dll.h"     

//这里引用dll.h的原理就和在上面引用的stdlib.h stdio.h是一样的,只是我们需要对
//dll.
h的路径说明
,而stdlib.h等在默认情况下已经写入路径了,你可以查看                    //Project option

 

using namespace std;

int main()

{

    int b;

    b=Fsum(1,2);

    cout<<b<<’\n’;

    system("PAUSE");

return 0;

}

 

9. 这是最重要的一步,把前面生成的DLLProject.dlllibDLLProject.adll.h都复制到当前的文件加下面,然后在左侧的Project下面,把dll.h添加上来之后,打开旁边的Classes,就可以看到刚才我们定义的函数和类了,这一点很直观,比VC强了很多。所以在上面的代码中,我们才能直接引用Fsum(1,2), 还有一点不能忘记的是,在Project工具栏里面,点击Project Option-> Parameters -> Linker -> Add liberiry or object, 把刚才的libDLLProject.a引入进来。

10.好了,编译运行,这样就看到结果了。

 

 

补充几个重要的知识:

1. 在Dev-CPP的IDE环境下,我们可以按住Ctrl,然后点击某个系统的函数,这样实现的功能就和在VC++里面把鼠标放在某个系统的函数上点击右键->go to the definition一样,这样我们就可以查看系统是如何定义的了,这一招可不外传哦。。。

你可能感兴趣的:(C++,c,C#,软件测试,vc++)