Forum Replies Created
Thanks for the translation.
Version 3.0 is now out. Enjoy 😉
Thanks for the translation. BTW, starting from WinCDEmu 3.0 (will be released soon), it will support language customization.
You can merge your translation into WinCDEmu 3.0 by translating the provided language file (see WinCDEmu homepage).
The forward slash seems to be your unique case (some third-party boot manager?). Anyway, I’ll add support for both “default” and “/default” in the future versions. Thanks for investigating the problem 😉
Bah! Did not try this one at all. I guess, there are some flags that BUILD specifies to the compiler, and Visual Studio does not. I’ll put this into the feature wishlist, however I cannot promise to fix it soon. If you find the exact flag responsible for the structured exceptions, please notify me, so I can release a fix.
Just an update about mixing code. The only practical case of using different compilers is writing plugins to existing apps. However, this involves polymorhpic approach (you implement existing interface without the program knowing internal details of your plugin) and is nicely done using C++ interfaces (that do not have problem with compiler interoperability).
Anyway, mixing compilers has nothing to do with kernel-mode code (besides, it’s Linux, not Windows, that requires recompiling the drivers for each kernel version 😆 ), so this argument does not seem to be reasonable related to the discussed problem.
There is a problem with linking C++ dynamic libraries compiled with one compiler to applications compiled by another compiler
Can you name a frequently used case, when you really need to mix code compiled with different compilers? IMHO, it’s like “cars don’t fly to the moon, so let’s not use cars at all”. AFAIK, all modern GCC versions use the same calling conversions. And all VC stuff as well. And, if you are really picky about this, just force your functions to be stdcall and be happy 😉
Name a language or a framework and if it can use dynamic modules, they are probably C.
COM, .Net, Java… KDE, at least
These are real problems with C++ and portability.
In rare cases, and only with several platform-specific subsets of C++, such as exceptions. And, frankly, I would rather port a modern version of GCC to a problematic platform (as I did for http://mspgcc4.sourceforge.net/, than do all the optimization, inlining and other stuff manually every time.
Of course, i could start another holywar by telling you just how much C++ sux as an objective language, but that is hardly appropriate
I don’t need a “perfectly object-oriented language”. I need a language allowing me to solve my problems with the minimum effort provided that my expectations about portability and performance are met. I really don’t care whether it is 19% of 91% object oriented…
So, the point is, if you’re writing something to be widespread and used by everyone (that is, a library), C is your best bet
Hmm. I guess, KDE, Visual Studio and lots of COM-based Windows applications are just not widespread enough… 😀 No, seriously, the modern world is so heterogeneous, that you can find ‘widespread’ examples for almost anything. No, really. I know people that use this: http://en.wikipedia.org/wiki/MUMPS. Surely, claiming it to be widespread.
AFAIR the size of the ‘standard types’ is machine-dependent (that is, poorly portable).
So, for the tiny probability to run your stuff on a 70s mainframe with 7-bit char, you will really agree to make your program model more complex? No, really, have you ever seen a PC running something else than x86 or x64? I know that ‘perfect portability’ is a good point, however, when it comes with a cost of making things messier…
So, i would like to wish you luck in fighting your prejudice, and will hope that libmirage will be used to its full extent.
My prejudice is that I will not spend K hours on solving a problem, if I can solve it in K/2 hours using a modern language and a modern compiler. After I add support for some of custom formats (NRG and MDF, most likely), we can compare the size of the code doing the same stuff using C and C++ (and even compare code performance, if you wish).
Once again, the problem is to distinguish between abstract terms like “purely object-oriented language” and “absolute portability” and an exact problem statement. Implementing a set of CD format parsers does not require link-time compatibility with code compiled by other tools. It does not require non-8-bit chars and exotic-sized integers. For fixed-size binary structures inside image files, uint32_t and similar types are completely appropriate. So, talking about an abstract program potentially portable in every combination to every computer in time and space, your arguments seem reasonable. Provided the real use cases from real world, I don’t agree with any of them.
I’ve checked out libmirage. Unfortunately, this is one of those libs claiming “we are stuck in 80s, we don’t admit C++ exists, so we’ll implement all its features in raw C, manually and horribly”. Involving manual pointer table initialization instead of virtual functions, various stuff like “GObject” and “gint” instead of standard types and so on. I will consider adding support to, at least, MDS/MDF and NRG in future releases, however, I doubt I’ll even try porting this made-to-be-unportable library.
Just ensure that you don’t violate BazisLib and WinCDEmu license…
I did not release the sources of the installer program, as it uses some old not-very-well-written code and has even more dependencies, than BazisLib. I suggest using some other free installer for your custom builds. If you really want to use the original one, I can send you the toolkit for compiling installation scripts and building the EXE, however, got to warn you, it is not very user-friendly 🙂
I hear this for the first time also. Moreover, knowing what does the installer modify, I cannot name a single reason, why should it be like this. You can try the TweakUI tool from MS to rebuild various explorer caches and manage icons, if that helps. Additionally, try uninstalling WinCDEmu and seeing whether it affects the icons.
If that helps, here is the script that modifies the registry during WinCDEmu installation (as you can see, it does not change anything related to “my computer”):C++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354$registrycreatekeyb HKCRApplicationsvmnt$64_OR_VOID$.exeshellopencommand 3264setstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1""createkeyb HKCR.isosetstrdef BazisVirtualCD.Isocreatekeyb HKCRBazisVirtualCD.Isosetstrdef "ISO CD/DVD image"createsubkey DefaultIconsetstrdef %SystemRoot%System32shell32.dll,11createkeyb HKCRBazisVirtualCD.Isoshellcreatesubkey opencreatesubkey commandsetstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1""createkeyb HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.isosetstrsubst Application vmnt$64_OR_VOID$.execreatekeyb HKCR.cuesetstrdef BazisVirtualCD.Cuecreatekeyb HKCRBazisVirtualCD.Cuesetstrdef "CUE CD/DVD image"createsubkey DefaultIconsetstrdef %SystemRoot%System32shell32.dll,11createkeyb HKCRBazisVirtualCD.Cueshellcreatesubkey opencreatesubkey commandsetstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1""createkeyb HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.cuesetstrsubst Application vmnt$64_OR_VOID$.execreatekeyb HKCR.imgsetstrdef BazisVirtualCD.Imgcreatekeyb HKCRBazisVirtualCD.Imgsetstrdef "Binary CD/DVD image"createsubkey DefaultIconsetstrdef %SystemRoot%System32shell32.dll,11createkeyb HKCRBazisVirtualCD.Imgshellcreatesubkey opencreatesubkey commandsetstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1""createkeyb HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.imgsetstrsubst Application vmnt$64_OR_VOID$.execreatekeyb "HKCRBazisVirtualCD.IsoshellSelect drive letter && mount"createsubkey commandsetstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1" /ltrselect"createkeyb "HKCRBazisVirtualCD.CueshellSelect drive letter && mountcommand"setstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1" /ltrselect"createkeyb "HKCRBazisVirtualCD.ImgshellSelect drive letter && mountcommand"setstrdef ""$DESTDIR$vmnt$64_OR_VOID$.exe" "%1" /ltrselect"
WinCDEmu installer registers its program folder in “Start” menu and that causes it to reload. I mean, if something messed up the settings before, installing WinCDEmu just caused explorer to re-read all settings & make the problem visible. Ok, can you clearly describe what exactly has changed? Which icons appeared where? It is not completely clear from your previous posts. Maybe, I’ll have some suggestion.
WinCDEmu does not add any icons or shortcuts apart from its own group in the start menu. Maybe, your problems are due to unclean shutdown, or some other software? The only rarely happening problem related to icons is that when you unmount a disk image (e.g. V:) and mount a new one to the same letter, explorer can continue using the old icon for that. However, this has nothing to do with WinCDEmu. If you are not sure, try disabling “Virtual Disk Enumerator” device in the Device Manager and checking whether the problem persists.
Actually, I was recently contacted by a guy planning to port VirtualKD to Linux VM host (redirecting connections to WinDbg via TCP/IP). I have no clue whether he has any success with that, however, I can forward him your e-mail. Maybe, you can join your forces to make it work on Linux 🙂
In such case, VirtualKD won’t work. It requires a Windows host machine, simply, as WinDbg runs only on Windows. Running VirtualKD without having WinDbg on the same machine would make no sense.
Ok, the solution is simple. VBoxDD should be replaced on the HOST machine, not on the GUEST. It allows the host-side part of the VirtualBox to handle the requests from the OS. Guest-side modifications are performed automatically by VMInstall.