当前位置: 技术问答>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函数定义
找到其中m_plugin的定义
其中有FI_OpenProc open_proc;
再找到FI_OpenProc相关的
看到这里就不懂了
怎么理解FI_OpenProc这个东西?
最一开始的 void* data 是怎么写进去的呢?似乎没看到FI_OpenProc实现啊
其他地方也没有搜到关于FI_OpenProc的东西了
望大大指教
在打开图象文件的时候有段代码是这样
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!
如1楼,FI_OpenProc是通过typedef定义的一个新类型:函数指针类型!
2.最一开始的 void* data 是怎么写进去的呢?似乎没看到FI_OpenProc实现啊
FI_OpenProc只是一个类型,你要看用它定义的变量(函数)是在哪里实现的.
比如:有地方对FI_OpenProc open_proc;定义的变量open_proc赋值的地方!
good luck!
|
FI_OpenProc是个函数指针,可以去网上搜索一下关于函数指针方面的东西。
|
FI_OpenProc 是一个类型来的。 要找这个就要找这个类型的变量或者函数用在什么地方,哪里用了。
。。。貌似和3楼的大大重复了。。。
。。。貌似和3楼的大大重复了。。。