如何在codeblocks里c语言加game头文件

如何在codeblocks里c语言加game头文件,第1张

1.创建一个c++工程

2.添加自定义头文件

file-new-file... 选择C/C++header

选择路径 命名头文件

完成后的界面

3.添加源文件

file-new-file... 选择C/C++source

选择路径 命名源文件

完成后的界面

game.h 代码

#include <iostream>

using namespace std

void goAtk

game.cpp 代码

#include "game.h"

void goAtk

cout<<"LOL攻击实现"<<endl

main.cpp

#include <iostream>

#include "game.h"

using namespace std

int main

goAtk()

return 0

实现方法如下:

(1)新建一个文本文件Message.txt。这个文件将作为资源嵌入到DLL中

(2)在Visual Studio中创建一个“类库”项目。项目名称:ClassLibrary1

(3)在解决方案资源管理器中,选中项目ClassLibrary1-->项目-->ClassLibrary1 属性

在 ClassLibrary1属性设置页中鼠标单击 资源-->“……单击此处可创建一个”

鼠标单击  添加资源-->添加现有文件

在对话框中选择(1)创建的文本文件Message.txt

文本文件导入后,资源中增加了 一项 Message

至此,文本文件Message.txt已经成功导入!

(4)获取文本文件的内容

打开Class1.cs,编写以下代码

using System

using System.Collections.Generic

using System.Linq

using System.Text

namespace ClassLibrary1

{

    public class Class1

    {

        /// <summary>

        /// 获取资源中文本文件的内容

        /// </summary>

        /// <returns>文本文件内容</returns>

        public string GetTextFromResource()

        {

            return Properties.Resources.Message

        }

    }

}

(5)编译 ClassLibrary1 项目,生成 ClassLibrary1.dll

==================================================

以下为测试项目,测试 ClassLibrary1.dll

(1)在Visual Studio中新建一个“控制台应用程序”

(2)添加对 ClassLibrary1.dll 的引用

在解决方案资源管理器中,选中ConsoleApplication1项目,鼠标点击菜单 项目-->添加引用

在“引用管理器”对话框中,点击  浏览-->定位到 ClassLibrary1.dll -->添加

(3)Program.cs

using System

using System.Collections.Generic

using System.Linq

using System.Text

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            ClassLibrary1.Class1 c = new ClassLibrary1.Class1()

            string text = c.GetTextFromResource()

            Console.WriteLine(text)

        }

    }

}

(4)运行效果

成功地从DLL中读出了文本文件内容!

第一个问题

请问,我是不是该这样做:

在main.c中#include

在fun.c中同样#include

(好像是必需的,请详细解释)

这是必需的。因为编译器只是把包含文件的代码复制过来,既然你二个文件中都用到头文件的内容,那当然要包含头文件,否则就会出错。

我的观点,如果这两步都是必需的

那么当有很多个比如10个.c程序每个里头都要#include

那么文件是不是会特别大,当有100个.c程序都要包含一下的话,那么不是非常重复么?)

那当然是会重复的。不过这个对程序的运行效率没任何影响,只是在编译过程中对文件的分析时间会稍长些,这也是没有办法的事,全看代码编写者如何组织结构了。

第二个问题:

会的。解决的方法就是在可能被多次包含的头文件中开头加上#pragma

once,那样就可以保证此头文件代码只被执行一次,而不会造成头文件中函数多次重复定义至于引起这种情况的情况。当然你也可以自己用#ifdef等预编译处理来解决。你问的问题不就是这种情况么?main.c和fun.c中都包含头文件tou.h

第三个问题:

当我在main.c中这样

#define

unchar

unsigned

char

那么当我在fun.c中还需要重新创建替换宏unchar吗

可以不在创建而直接使用吗?

答案是需重新创建,不能直接使用。但你可以把一些在多个文件中使用的宏、全局变量等统一定义到一个头文件中,那这样就可以避免多次定义了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11595200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存