mctrl icon indicating copy to clipboard operation
mctrl copied to clipboard

mcGrid_Initialize & mcGrid_Terminate definitions are missing...

Open CodeVisio opened this issue 2 years ago • 2 comments

Hi,

I've been looking to your great controls but I couldn't find the definition of the two functions above.

Am I missing something?

Thanks

CodeVisio avatar Mar 22 '23 18:03 CodeVisio

Are you still developing those tools? The last changes were many years ago.

CodeVisio avatar Mar 23 '23 18:03 CodeVisio

The definitions for these functions aren't missing, they are just named something other than what you expect. Look in the grid.c file for the functions named grid_init_module and grid_fini_module. These two functions correspond to mcGrid_Initialize and mcGrid_Terminate, respectively.

The mCtrl.def file's EXPORTS statement lists the names of the functions that are exported by the DLL. In here, you'll see the names you expect, mcGrid_Initialize and mcGrid_Terminate, just like in the header file, grid.h.

The dots are connected by code in module.c; look at the DEFINE_MODULE and DEFINE_PUBLIC_IFACE macros. When expanded out, these have the result of mapping grid_init_module to mcGrid_Initialize and grid_fini_module to mcGrid_Terminate, along with the equivalents for all of the other controls.

I have no idea why the decision was made to name the internal implementations something different from what is exported, but the definitions are there, and they do work.

As for whether the library is still being developed, I don't have any inside information there, either, but it certainly doesn't look like there is any active development going on. As you noted, the last changes were many years ago, and there is a pending PR from 2 years ago that is a very simple, very critical fix, which hasn't been merged yet. I'd assume the author was indisposed, but he's updated some of his other repositories, so I guess he has just lost interest in this one.

codygray avatar Jul 04 '23 06:07 codygray