請教: 請大俠解釋一下下面的程式碼?(早知道這樣早點開始學 C/C++)

简叔 2003-12-17 04:59:50
以前從未碰過 C/C++,, 因工作需要,真的是沒辦法,請詳細解釋一下面程式在作用?
為什麼要這樣做?(我只知道不這樣做 pl/sql ora_ffi.load_dll 的程式就執行不成功)
程式中的 * 和 & 和 C# 中的那個 Operator 相當? 謝謝!!
/*
Card.c

This file, compiled as Card.dll(CL /LD card.c /link.dcrf32.lib), serves as a Win32 interface for Card.pll.
The purpose of card.c is to solve the problem of incompatibility between dcrf32.dll
and PL/SQL.
*/
#include <windows.h>


/* 9 */ __declspec(dllimport) __int16 __stdcall dc_read(HANDLE icdev, unsigned char _Adr, unsigned char *_Data);

BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved)
{
return TRUE;
}
/*
Read the data from a section in ASCII
*/
__declspec(dllexport) unsigned char * my_read(HANDLE icdev, int _Adr)
{
int st;
unsigned char adr = _Adr;
unsigned char data[16] = {0};
unsigned char *copy;
int len;

st = dc_read(icdev, adr, data);

len = strlen(data);
copy = (char *)malloc(sizeof(char) * (len + 1));
strcpy(copy, data);

if (st!=0)
return "ERROR";
else
return copy;
}
...全文
27 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liao2001 2003-12-18
  • 打赏
  • 举报
回复
这些代码是vc的规格+少量的c代码,要想看懂它就去查msdn吧,每一个keyword都会有解释的,dll相关的东西,偶是unix程序员
huanmm 2003-12-18
  • 打赏
  • 举报
回复
/*
Card.c

This file, compiled as Card.dll(CL /LD card.c /link.dcrf32.lib), serves as a Win32 interface for Card.pll.
The purpose of card.c is to solve the problem of incompatibility between dcrf32.dll
and PL/SQL.
*/
//以上是对该文件的说明

#include <windows.h>
//包入头文件

/* 9 */ __declspec(dllimport) __int16 __stdcall dc_read(HANDLE icdev, unsigned char _Adr, unsigned char *_Data);
//声明一个函数,估计是在别的文件里面写的公函

BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason,
LPVOID lpvReserved)
{
return TRUE;
}

/*
Read the data from a section in ASCII
*/
__declspec(dllexport) unsigned char * my_read(HANDLE icdev, int _Adr)
{
int st;
unsigned char adr = _Adr;
unsigned char data[16] = {0};
unsigned char *copy;
int len;
//声明变量

st = dc_read(icdev, adr, data);
//调用函数,估计是将icdev的值写入data

len = strlen(data); //取得data数组的长度
copy = (char *)malloc(sizeof(char) * (len + 1));
//按照这个长度申请一段内存
strcpy(copy, data); //将data的内容写入刚才申请的内存

//如果刚才的函数调用返回值不为零,表示调用失败,返回"ERROR"
//否则返回刚才申请的内存的首地址
if (st!=0)
return "ERROR";
else
return copy;
}

说句实话
这段代码怎么看怎么觉得有点别扭
简叔 2003-12-18
  • 打赏
  • 举报
回复
程式本身是不難(對一個 C/C++程序員來說), 小弟從來沒有碰過,所以跟看天書一樣,如果能逐行解釋一下就感激不儘.因為還要改其它的和程式(:) 和這個都很相像,如果這個知道其它就舉一翻三了).
huanmm 2003-12-18
  • 打赏
  • 举报
回复
程序本身没有什么难的啊
只不过这个东西是一个片断
不知道目的是干什么

C里面*是取得指针所指向的内容
&则相反,是取得变量的内存地址
C#没学过
应该对应哪一个操作符你自己看着办吧
简叔 2003-12-17
  • 打赏
  • 举报
回复
請高手花一點點兒時間,指點一下.謝了!
yonyon 2003-12-17
  • 打赏
  • 举报
回复
up

sorry,no idea
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧