Unable to locate SHCreateItemFromParsingName (SHELL32.dll) - visual-c++

Good afternoon all,
I want to set up voice recognition macro's to run on my P.C (Windows XP Professional SP3) so I installed Windows Speech recognition Macros. However when I click on it, it states:
The proceedure entry point SHCreateItemFromParsingName could not be located in the dynamic link library SHELL32.dll. So...
I installed Microsoft Visual Studio C++ 2010 then... Clicked on debug - Star Debugging, then Project - Shell 32 Properties - Common Properties - Linker - Input - Delayloaded DLL's, then edit and I typed in /DELAYLOAD:shell32.dll.
However when I click on Windows Speech recognition Macro's I'm still getting the same error message.
Please can you help??!
Kind Regards
AlanTS

This has nothing to do with delayed loading. This error means you've installed a version of the speech library that's not designed for XP (or that you're missing a service pack that updates XP). The error means that Shell32 doesn't contain the procedure SHCreateItemFromParsingName, which requires Vista or later - see the MSDN documentation.
EDIT: You seem to want to believe what you've "heard" instead of the documentation from the people that wrote Shell32 (and therefore should know). The docs don't say "available on Vista, unless you've heard otherwise and then it works on XP SP3." The docs say "Vista", which by definition means Vista or later versions of the OS.

Related

running a vc++ command line application on non development machine,

When I run command line application (executable generated using visual studio 2008) on non development windows 7 machine it gives following run time error "application has requested run time to terminate in unusual way. Please contact application support team for more information". It runs fine on a development machine.
With VS 2005 and VS 2008, Visual C++ used a side-by-side versioning scheme that requires manifest entries embeddded in the EXE to really work correctly in all cases. It's possible you are dealing with one of these. See these articles for details on debugging these side-by-side issues.
Diagnosing SideBySide failures
Part 1: Troubleshooting VC++ Side by Side Problems
Part 2: Troubleshooting VC++ Side by Side Problems
Note that with VS 2010 and later, Visual C++ no longer uses this side-by-side scheme. That said, there are still lots of reasons to use embedded manifests anyhow. See this article.

visual studio express 2012 version control

I have been sent a working project from a coworker to start learning Visual Studio. The project is under version control, however I don't want to have access to final customer product. So when I try to open the solution file I first get a message that the project is under source control:
"Team Foundation Server Version Control
The solution you are opening is bound to source control on the following Team foundation Serer:
http:// . Would you like to contact this server to try to enable source control integration?"
[yes] [no] [help]
I press no, then I get an error:
"The solution appears to be under source control, but its binding information cannot be found. Because it is not possible to recover the missing information automatically, the projects whose bindings are missing will be treated as not under source control."
[ok] [help]
I proceed and press ok, and another message pops up:
"projectname\projectname.tsproj: The application which this project type is based on was not found. Please try this link for further information: http://go.microsoft.com/fwlink/?prd=12395&pver=11&sbp=ProjectTypeDeprecated&plcid=0x409&clcid=0x409&ar=MSDN&sar=ProjectCompatibility&o1=B1E792BE-AA5F-4E3C-8C82-674BF9C0715B"
My coworker tells me he sent the whole project, so I can't figure out why I cant get visual studio to open it. I am new to visual studio, but I have some programming experience.
Any help is much appreciated.
Thank you
It is doubtful that version control has something to do with your problem. There are two possibilities I could think of:
Your coworker uses full version of VS2012 and you are now having problems due to the fact that Visual Studio Express comes in two main flavours - Web and Desktop. It is unable to load Web(or Desktop) project because it just does not have any tools to work with it. Ask your coworker whether they mix web and desktop in their solutions. If it is so you should either use full VS or be given a reduced set of projects.
Nearly the same - your coworker uses some very old or very new version of particular project type (something like ASP.NET MVC that(as I remember) has different project type for each version). Again ask your coworker if it is so. In this case you will just have to install the needed templates and SDKs.
P.S. I was unable to open your link - it opens microsoft.com/default(maybe due to some regional problems). Search by key words brought to me similar problem for VS2010 http://connect.microsoft.com/VisualStudio/feedback/details/728847/could-not-open-vs2010-solution-with-mvc-project - may be it could help you more specifically.

Using AppLocale with LabVIEW

I am running LabVIEW 2013 Dev Environment on a Chinese Windows 8 platform. LabVIEW is not a Unicode-base program, and consequently on Asian Windows there are display issues for our interfaces created with US-English character sets. I can fix this problem by setting the language settings for non-unicode programs to English. This works fine, except that all my other non-unicode-based programs are totally illegible.
A quick google search turned up Microsoft's utility for running application with a user-specified code page, AppLocale. The utility is only written to be compatible up to Windows XP. There are two suggested methods I ran accross for installing it: 1. run installer using compatibility settings 2. install using command prompt with admin privileges (apparently it doesn't play well with UAC. You can find one set of instructions here for installing AppLocale on Windows with UAC.
Unfortunately, nothing I have tried has been able to get LabVIEW to use the code page I would like it to. When I run LabVIEW through AppLocale and open the user-interface I am concerned about, the characters still do not display properly.
Any ideas what I might be doing wrong? Could there be a fundamental incompatibility with LabVIEW?
Does anyone know of an alternative to AppLocale that might work for me?
One alternative to Applocale on windows 8 is Locale Emulator created by xupefei. You will have to have visual studio to build the project.
Make sure that your region settings are set to an english speaking region such as the united states of america. You can check this under
control panel >> clock, language, and region >> region settings
Additionally ensure that you have the language packs installed for the character sets used by LabVIEW. You can check which language packs you have installed under control panel >> clock, language, and region >> language
You will want to have installed support for complex languages
If none of these things work I would try upgrading to windows 10 as it has much better language support

Adding Prerequisites using InstallShield 2010

I am very new to Installshield 2010. I have created a basic MSI setup for my application.
I need to check a few prerequisites for my application those are as below.
Microsoft frame work 3.5 with SP1.
Sql Express 2005.
Visual C++ redistributable
If any of the above things are not installed before means, I have to install while installing my application.
Can anyone guide me How I can install all these prerequisites before I installing my application?
Take a look at "Setup Prerequisites" and "Feature Prerequistes" They are the same except that the former are installed by setupe.exe before calling your MSI and the latter are installed by setup.exe (conditionally) after your feature selection and prior to the execution of the execute sequence in your msi.
If you go for the former, you probably also want to author AppSearch/System Search and Launch Conditions to block your MSI in case the user doesn't enter through the setup.exe.
InstallShield has predefined prereqs ( .PRQ's ) for each of those although I will caution you to atleast use SQL 2005 SP3 as there is a nasty bug in SP2 that can blue screen an XP machine. I'd actually really consider going with SQL 2008 R2.
Also found more info here in this page: http://kb.flexerasoftware.com/doc/Helpnet/InstallShield2011/IHelpSetPrereqCustom.htm
This one took me quite a while to find, hopefully I'll save you some time.
If you just want to force your user to have some applications installed (e.g. 'Visual C++ redistributable') or some specific configuration (e.g. specific Windows version/ reg value etc.)
You can use 'Behavior and Logic -> System Search' add the search for what you need (file/folders/registry entries/ini files values/XML file values),
On "What do you want to do with the value?" dialog select Store the values in the property and use the property in an Install Condition".
This will cause the Search to be executed when your installation package starts and will display an error popup to the user saying what ever message you've entered for the condition.
Few notes:
- If you're looking for a x64bit registry entry - mark the "Search the 64-bit portion of the Registry" check box.
- Did not find a way to edit the Condition once created, when tried to edit it it just lets me see and change the search parameters, but for the condition it only allows to enter it from scratch; as a workaround you can save the project as XML file (Installation Information -> General Information -> Project File Format) and edit the XML externally.
Good luck.

Is a COMException of 0x80040154 always 'Class not registered'?

Does a System.Runtime.InteropServices.COMException of 0x80040154 always mean that the class isn't registered? I'm getting a COMException which says "Retrieving the COM class factory for component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following error: 80040154." It's trying to load Interop.Domino.dll which is a reference I got from the COM tab of Add Reference called "Lotus Domino Objects" which points to domobj.tlb in the Notes program folder.
I wrote the code years ago - it's the only thing I've ever done with interop and it's fair to say that I never really got to grips with it.
I'm seeing this error again after moving the code to a 2008 R2 server (so it's x64). It was written on XP and run on 2003 (both x86). In order to diagnose the problem, I built a Win7 x86 (because there's no R2 x86) box and it worked. I also built a 2003 x64 box and it fails with the same error, so it looks like it's caused by moving to x64 architecture. Is there something I should do when doing interop to get x86 COM DLLs to work on x64 machines?
I had the same problem trying to build and run a .NET application on Windows 7 x64 that called interop.domino.dll, which is 32 bit only.
To resolve, I recompiled the .NET application to run specifically as x86 when run on x64 operating systems.
I was using Visual Studio 2010 Express Edition which is trickier to target specifically for x86 platforms than the paid for versions.
The solution was:
Click TOOLS > OPTIONS > PROJECTS AND SOLUTIONS
Check the box "Show advanced build configurations" and click OK
Click TOOLS > SETTINGS > check EXPERT SETTINGS to see the build configuration manager
Click BUILD > CONFIGURATION MANAGER select the platform dropdown to X86 and click CLOSE
Now rebuild the project
Pay attention to register of 32-bit components using the correct register (C:\Windows\SysWOW64\regsvr32.exe).
If you have already registered up with the 64-bit version, unregister each dll with the same version.
More help you find here Team is Going from XP32 to XP64 for .NET Development - Any Gotchas?
Good luck
There's an IBM technote that indicates that the Domino COM classes are not supported on a 64-bit OS. See https://www-304.ibm.com/support/docview.wss?uid=swg21454291 So it seems like even by compiling the code to run as x86 (as per mpownie's answer), you're still taking some chances.

Resources