I am basically doing what you've suggested, with two important differences that I can see:
1) The function headers are not 'extern "C"' I just use the regular C++ definitions. I don't think that affects my project, since everything uses C++.
2) The function headers used by the app are not declared __declspec(dllimport). Would this prevent the dialog resources from showing? I doubt it, since the functions I call work just fine.
I can call all the functions I export no problem, without 'extern "C"' or __declspec(dllimport). Yes, the lib is imported into my project (so the dll is loaded implicitly). Basically, my code looks very similar to yours:
I've figured out what the problem is. Basically, the DLL needs to load the resources, and then properly set the resource source before you need to load one, such as when you want to load a dialog template.
This is not a question or cry for help.
Rather, I wondered if anyone would be interested in some code that performs adaptive histogram equalization (AHE in imaging circles). If I see enough demand for it, I'll dust off some old code, wrap it up into a nice demo app and submit it as an article.
For those not familiar with the imaging field:
AHE is an algorithm to enhance the contrast of an image.
Here is some background info:
I code C++ for unix at my job. I have my directory shared via samba to my windows desktop. I have VS setup to use as my IDE.
Here is one question:
We save our files as *.cc instead of *.cpp and VS doesn't recognize this as a C++ file therefor I get no syntax highlighting and all that other cool stuff. Is there a way to add an extension (*.cc) to the list of C++ files?
Here is another question:
I added another folder to my project called libs where I put all of our classes. We have a class called Cstring and if I type Cstring:: it will pop up the box with all of member functions associated with that class. But if I do something like Cstring str; then type str. it does not pop up that nifty little box. Anyone know how to fix this? (Note: I am not actually compiling the files on my windows machine. Just saving them and then compiling on my unix term.)
Thanks in advance,
There are 10 types of people in this world, those that understand binary and those who don't.
I have encountered your
Cstring::/ Cstring str / str. problem with the autocomplete
as well. Sometimes I find it works for non-C++ native classes and sometimes it doesn't. I suspect that it is a bit flakey.
Unfortunately I cannot help you, but would appreciate anyone else's input who can shed some light on this...
To force a file to be recognised as C++, use the /Tp option in your settings. Of course, you'll need to create a dummy project to have settings - put all your .cc files into it, and VC should be happy (it may even provide intellisense for you)
So. I build ansi - fine. I build UNICODE and I get this:
Main.obj : error LNK2019: unresolved external symbol "void __cdecl SalieriFoundation::Globals::Func(class std::basic_string < unsigned short,struct std::char_traits < unsigned short > ,class std::allocator < unsigned short > > const &)" (?Func@Globals@SalieriFoundation@@YAXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z) referenced in function _main<br />
Edit: as asked by first reply changed the linker error message - added some spaces to avoid HTML-like text. Also I actualy have namespaces that you can see in the error message so I added in the above sample code - but I don't think it makes any diff.
What's wrong? _UNICODE is defined in both projects.
I'm tying to find it for like 6 hours. Please help.
Are you sure it is linking with the unicode version of the static library? If both the unicode and ansi versions have the same filename (which is never a good idea), then it is possible that it is finding the ansi version first, and so never finding your unicode version of the function.
Have you seen Michael Dunn's article on Custom-Draw in List boxes? It's on this site (can't find link - it's entitled "Neat Things to do with CListCtrl using Custom Draw") - I have successfully followed that example to colour my List Box
Because, you haven't made the connection between the m_wndOk variable and the IDOKUNDCERVCREAT control, enabling m_wndOk won't do anything. The easiest way to achieve what you want is to lose the variables and just do: