当前位置:  技术问答>linux和unix

小弟有段代码看不懂 求指教

    来源: 互联网  发布时间:2016-05-02

    本文导语:  读FreeImage源代码 在打开图象文件的时候有段代码是这样 void *data = FreeImage_Open(node, io, handle, TRUE); 关于FreeImage_Open函数定义 void * DLL_CALLCONV FreeImage_Open(PluginNode *node, FreeImageIO *io, fi_handle handle, BOOL open_for_readin...

读FreeImage源代码
在打开图象文件的时候有段代码是这样
void *data = FreeImage_Open(node, io, handle, TRUE);

关于FreeImage_Open函数定义

void * DLL_CALLCONV
FreeImage_Open(PluginNode *node, FreeImageIO *io, fi_handle handle, BOOL open_for_reading) {
if (node->m_plugin->open_proc != NULL)
       return node->m_plugin->open_proc(io, handle, open_for_reading);

return NULL;
};

找到其中m_plugin的定义

FI_STRUCT (Plugin) {
FI_FormatProc format_proc;
FI_DescriptionProc description_proc;
FI_ExtensionListProc extension_proc;
FI_RegExprProc regexpr_proc;
FI_OpenProc open_proc;
FI_CloseProc close_proc;
FI_PageCountProc pagecount_proc;
FI_PageCapabilityProc pagecapability_proc;
FI_LoadProc load_proc;
FI_SaveProc save_proc;
FI_ValidateProc validate_proc;
FI_MimeProc mime_proc;
FI_SupportsExportBPPProc supports_export_bpp_proc;
FI_SupportsExportTypeProc supports_export_type_proc;
FI_SupportsICCProfilesProc supports_icc_profiles_proc;
};

其中有FI_OpenProc open_proc;
再找到FI_OpenProc相关的

typedef void *(DLL_CALLCONV *FI_OpenProc)(FreeImageIO *io, fi_handle handle, BOOL read);


看到这里就不懂了
怎么理解FI_OpenProc这个东西?
最一开始的 void* data 是怎么写进去的呢?似乎没看到FI_OpenProc实现啊 
其他地方也没有搜到关于FI_OpenProc的东西了
望大大指教

|
1.
如1楼,FI_OpenProc是通过typedef定义的一个新类型:函数指针类型!

2.最一开始的 void* data 是怎么写进去的呢?似乎没看到FI_OpenProc实现啊 
  FI_OpenProc只是一个类型,你要看用它定义的变量(函数)是在哪里实现的.
  比如:有地方对FI_OpenProc open_proc;定义的变量open_proc赋值的地方!


good luck!

|
FI_OpenProc是个函数指针,可以去网上搜索一下关于函数指针方面的东西。

|
FI_OpenProc 是一个类型来的。 要找这个就要找这个类型的变量或者函数用在什么地方,哪里用了。
。。。貌似和3楼的大大重复了。。。

    
 
 

您可能感兴趣的文章:

  • 怎么用javamail发送附件,小弟刚接触,请各位大侠指教,谢谢!!!
  • 啊,小弟想用java做一个game,很简单那种网络飞机类game,不知道java 在图形方面的能力如何?请大虾指教指教.
  • ★一个关于java开发工具的问题,小弟初学,请大家指教
  • 小弟我刚装了个linux7.2,碰到一个小问题请指教!
  • 诸位大虾,小弟无法继续学了,请指教,狂给分!!!!!!!!!!!!
  • 小弟初入java这一行,很想看看已经编好的源程序,愿意指教的请发送到samgundam@sina.com!谢谢
  • 想装linux, 但不知道怎样装,请高手指教小弟~谢谢~!!!!!!!!!!!
  • 小弟初学,请指教,我对数据封装不太明白!
  • 小弟第一次安装rh9 linux,请安装过的朋友们指教!
  • 如何学Linux啊,请前辈们指条明路给小弟!以后就到这个版块混了,请大家多多指教!
  • [高分求助]小弟在编第一个驱动程序时出现了若干辣手问题,请高手指教!
  • 用过jsp的朋友,请你们指教指教小弟。100分,对好的建议还可以加分
  • 有人用Sybase+jConnect吗?使用时有哪些需要注意的?请指教下小弟!
  • 我装了中文版的redhat7.3,并且经过了美化,为什么中文目录或者文件名都是乱码呢?小弟刚接触linux,望各位大侠多多指教,谢谢!!!
  • 小弟初学Jsp,有一大堆问题请各位指教!
  • 共享内存入门问题,大家指教,小弟初学。谢谢
  • 各位大虾!!请帮忙啊!救小弟一把!我编的一个中缀转后缀的程序,便已通过可是运行却出错,请指教!!
  • 紧急求救:select轮循,单进程处理多个客户连接问题(TCP/IP),那为大大指教,小弟不胜感激!!代码如下:
  • ★★★那位仁兄有Apache的源代码?小弟急用!多谢!!
  • 小弟高分求“Linux 0.02版”的源代码!
  • 小弟试了几天,failed!--基本上用源代码安装linux?
  • 有谁对nagios 的原代码做过分析的,给小弟点帮助啊
  • 大哥大姐们小弟刚学JAVA,对它没点头绪啊!能告诉我JAVA在什么环境下编写代码和编译吗??
  • 请高手为小弟解读一段GCC的makefile代码?万分感谢!
  • 哪里有VI和EMACS的源代码??我去GNU的FTP站点了,没找到,知道的朋友们,能不能告诉小弟一声,谢谢了!!!
  • 我用jsp连接access,各位高手能帖出代码给小弟,多谢!
  • 请问一下,有谁知道linux源代码中socket(int domain, int type, int protocol);函数的定义是在哪个文件中啊?小弟我找了很久,都没找到,谢谢哈。
  • Flash与S3C44B0X连接时地址线为什么要偏移一位,对应的代码也不甚清楚,劳烦各位大侠给看看。小弟先在此谢过了。
  • 小弟初学JAVA,请各位大虾对以下代码逐句解释! 200分言谢!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 大哥们,小弟我准备学JAVA了给推荐几本好书吧!小弟不胜感激啊!
  • 小弟问个问题,JDK哪有下载啊!小弟不胜感激啊!
  • linux高人!!!帮帮小弟啊,小弟是菜鸟
  • 哥们,谁有Jbuilder 4的注册码,给小弟解围,小弟谢先!!!
  • 小弟考试在即!望大哥们帮忙!!!跪求!!!
  • 哪位大哥给小弟一个squirrelmail的安装教程
  • 各位网络编程的大侠,帮帮小弟
  • OpenSSL安装过程中遇到的问题,希望大哥们帮帮小弟
  • 请各位大虾给小弟推荐几本好书
  • 小弟想在linux下访问windows 和usb的文件系统
  • 请问JBulider 4的序列号谁知到?能否提供给小弟?谢谢
  • 各位兄弟 谁有 powerZip 5.21 的注册码,小弟不胜感激!!
  • 小弟想用java做个sygate
  • 求教:文件打包移植错误发生排序错误,小弟努力送分送分啦!59~~~
  • 小弟急需要知道程序员查分网站。多谢!!!
  • 小弟签约银行,想装个unix先熟悉一下!
  • 小弟是初学者,请推荐几本不错的unix书籍。
  • 小弟想学linux,推荐几本好书,有电子版下载的最好.
  • 小弟初学JAVA,大家给点建议吧
  • 哪位大哥,大姐知道国内那个网站有jdk1.4的API下载,告诉小弟一下


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3