如何定义入口地址固定的函数

如何定义入口地址固定的函数,第1张

你说的for,我看出来你已经知道存在那悄橘些功能,但是还不知道某个功能是不是被实现了,下面又是一个例子:

FUN funs[16]={fun1,NULL,fun3}//假设我们知道最多也就16个功能,但是目前只有功能0和2被实现,功能1和其他的3~15都还没有实现

for(...)

{

int funCode

...

if(funs[funCode]!=NULL)//如果不是NULL,说明对应的功能号被实现启好团了

funs[funCode](...)//调用

}

---------------------------------------------------------

楼主,C语言是不应该干这件事的!

楼主你的需求实际上可以这样描述:

1 怎样才能根据输入条件来调用不同的函数

2 条件和函数是一一对应的,但是函数在哪是不确定的,例如可能是其他函数传进来的。

我举个简单例子来解决你的问题

typedef void (*FUN)(...)//参数列表和返回值自己填

//定义一些功能函数

void fun1(...)

{

printf("1\n")

}

void fun2(...)

{

printf("1\n")

}

....

//上面的注意了,参数列表和返回值要一样的

FUN funs[]={fun1,fun2,...}//把函数的指针放进数组,就像你C51的向量区,存放了许多函数的地址,这里最终放的也是地址,只不过等程序编译好了才知道是多少,

...//一堆代码

int funCode//用来存放计算出来的功能代码,例如0表示fun1,1表示fun2

...//一堆超级复杂而且重要且不可逃避的代码之后,funCode被设为了某个值,这个这个值实际上是我精心而且故意设计为袜键理解简单的小玩意,代表某个功能的代码。

funs[funCode](...)//调用功能函数(知道funCode需要精心设计了吧,funCode为0就调用了fun1),当然你也可以把funs传到某个函数,然他也像这样使用传进去的函数。

FunCode

常见运用问题解答

问题

1

、运行

FunCode

,导致电脑分辨率严重下降。

症状:

Windows

桌面图片变得特别大,

FunCode

界面变大,整个电脑指让唯屏幕只能看到其中一部分。

解决办法

1

、确保显卡支持

DX9.0

及以上版本;

2

、升级最新的显卡驱动程序。

问题

2

FunCode

中设计好界面,运行程序,游戏屏幕是黑屏。

症状:

造成该问题,有多种原因,根据不同原因有不同解决方法。

解决办法一

:

先点击

FunCode

工具条中的运行按钮

,如果运行正常(屏幕有图片)

,然后再在

VC

中运

行程序。

解决办法二:

检查电脑时间,确保电脑时间不能比实际时间提早。如果发现提早,需要 *** 作如下几步:

关闭

FunCode

FunCode

安装目录下

Bin\game\managed\datablocks.cs.dso

删除;

正确设置电脑时间。

重新打开

FunCode

解决办法三:

LanStar

软件(南京远志电脑管理软件)存在冲突。应安装最新

LanStar

或者卸载该软件。

解决办法四

精灵名称不能包含中文、开头是数字,或者中间有空格。按规定重新命名精灵名称。

解决办法五:

在排除上述两种原因的情况下,重新创建项目运行。

问题

3

:打开

FunCode

VC

工程,提示工程不存在

症状:

解决办法:

确保创建的工程名称不包含空格。比如工程名称为

sea fish

,是非法的。必须改为

seafish

问题

4

已经创建了

VC

工程,

也正确设置了

VC

启动版本,

但是点击

“打开

VC

工程”

,不能启动

VC

解决办法:

VC++

是绿色版(无需安装直接使用的版本,因此

VC++

的唯培安装路径不会保留在

Windows

的注册表中)

FunCode

不能通过注册表信息找到

VC++

的目录所在。

通过

VC++

直接打开工程, *** 作步骤如下:

1

打开

VC++

2

VC6.0

中,点击“文件”菜单中的“打开

工作区”

。在

VC2008

2010

中,点击

“文件”菜单中的“项目

/

解决方案滑简

,分别如下图:

VC 6.0

VC2008

/

2010

3

在跳出的文件窗口中,找到相应的

VC++

工程文件并打开。

VC++

工程文件图标如下

(名称根据具体项目确定)

6.0

2008

2010

6.0

版本工程文件的保存路径:

\

实验项目所在路径

\SourceCode\VCProjectVC6

2008

版本工程文件的保存路径:

\

实验项目所在路径

\SourceCode\VCProject2008

2010

版本工程文件的保存路径:

\

实验项目所在路径

\SourceCode\VCProject2010

4

如果我们忘记了实验项目当前的路径,最简单的一个办法就是点击“项目”面板中

的“打开工程文件夹”按钮,就会d出项目所在文件夹,从而了解当前路径所在。

问题

5

VC6.0

Win7

下运行,不能添加文件。

解决办法

1

下载

FileTool.dll

文件。

2

复制到

VC6.0

安装目录下。具体子目录为:

/Microsoft Visual Studio/Common/MSDev98

/AddIns/

3

用管理员权限启动

cmd.exe

4

cmd.exe

窗口中,先转移到

FileTool.dll

所在目录,然后执行

regsvr32.exe

5

Enter

键,注册成功。


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

原文地址: http://outofmemory.cn/yw/12568606.html

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

发表评论

登录后才能评论

评论列表(0条)

保存