Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross platform IDE compatibility #738

Closed
Kubikx opened this issue Jul 16, 2016 · 8 comments
Closed

Cross platform IDE compatibility #738

Kubikx opened this issue Jul 16, 2016 · 8 comments

Comments

@Kubikx
Copy link

Kubikx commented Jul 16, 2016

Is there a cross-platform(Win+Linux) IDE, with compiler support?
I start on Windows but I can not get it work.
stdout not resolved, I found solution, I must #include <wchar.h>
but I can not figure out how to resolve:
ImmGetContext and ImmSetCompositionWindow (imgui.cpp#L9589 and imgui.cpp#L9595)
I found them in <imm.h>, but Eclipse still reporting them as unresolved.

Can you recommend me another cross-platform IDE, or help me with configuration?

Thanks in advance for your help.

@ocornut
Copy link
Owner

ocornut commented Jul 16, 2016

I don't understand anything here. Are you mixing up IDE and IME (Input Method Editor, to input languages such as Chinese/Japanese)?

What are you trying to solve?

On Windows you need to link with imm32.lib or you can add #define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS in config.h to disable the default IME support (which you may not need) if you are using an exotic compiler that compiles for Windows but doesn't have this standard library.

@Kubikx
Copy link
Author

Kubikx commented Jul 16, 2016

Thank you.
I was trying Cygwin GCC, MinGW GCC and cross GCC.
define solve the problem.
#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS

@ocornut
Copy link
Owner

ocornut commented Jul 16, 2016

Does your compiler include an imm32.lib library that you can link to?

@Kubikx
Copy link
Author

Kubikx commented Jul 16, 2016

No I have only imm32.dll in C:\Windows\WinSxS\amd64_microsoft-windows-imm32_31bf3856ad364e35_10.0.10586.0_none_e8dbb66f24c23033

@ocornut
Copy link
Owner

ocornut commented Jul 16, 2016

OK I have disabled the default IME handler when using GCC as I couldn't find evidence that imm32.lib was supported by those compilers. IME support is rarely needed so it's not a big problem, and actual IME users tend to know enough about they are doing to re-enable the callback if they need it.

@ocornut ocornut closed this as completed Jul 16, 2016
ocornut added a commit that referenced this issue Oct 24, 2017
…32_DEFAULT_IME_FUNCS to IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS for consistency. (ref #238, #520, #738)
@ocornut
Copy link
Owner

ocornut commented Oct 24, 2017

FYI, leaving a note here for potential future readers stumbling here:

I have renamed those two defines that are usable (but very rarely used) in imconfig.h
IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS became IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS.
IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS became IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS.

Very few people will be affected and they will likely get a link error and therefore will notice.

The discussion in this thread pertain to using GCC/MinGW and both have those functions disabled already, so GCC/MinGW shouldn't be affected.

@ocornut
Copy link
Owner

ocornut commented Feb 22, 2021

As pointed by #2590, this change was a mistake on my end. Will revert.
Instead, MinGW users should be linking with -limm32 (and -ldwmapi since 1.82 WIP).

ocornut added a commit that referenced this issue Jul 8, 2021
… Studio compilers (MinGW etc.) (#2590, #738, #4185, #4301)

Enable with '#define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS' for those compilers. Undo change from 1.82.
@ocornut
Copy link
Owner

ocornut commented Jul 8, 2021

I pushed 30d164e to undo the change made in 1.82 to enable IME support by default with non-Visual Studio compilers, since in master this is part of the core library rather than the win32 backend it seems reasonable to require explicit enable.
Non Visual Studio users who want IME support in their app need to compile with #define IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants