What does the X-MultipleArgs in the Desktop Entry file mean? - desktop

All of the sample Desktop files have X-MultipleArgs=False --- but what does this mean? The X- means it's an extension so it's not defined in the FreeDesktop specification. But I can't seem to find a place where it is defined. Google searches don't help since it turns up lots of Desktop files.

Related

Is it possible to step into a member function defined in a .dll file?

I downloaded an SDK from NVIDIA and I'm using Visual Studio 2015 to run the demo project files provided in the SDK.
The demo project files in the SDK worked as expected until I made some small changes in the code (If you'd like details about the changes, please see last paragraph).
After making these changes, a line in the code seems to run forever. Using the debugger I found that there's a member function in that line of code that is not returning anything and therefore the program flow is just stuck at that line. I tried stepping into this function but it's defined in a .dll file that came with the SDK.
Visual Studio tells me that the symbol file is not loaded and the PDB file cannot be found on the Microsoft Server. The debugger lets me see the disassembly code but I don't know if I can identify the problem using that.
So now I'm stuck at a line of code because the member function defined in a .dll file won't return anything and just keeps on running (I've left it running for over an hour and still it didn't return anything).
I want to identify the reason why this is happening, but I'm unable to see the source code of the member function so I have no idea what's happening inside the member function or how to debug it. Is there any way I can identify the cause of this problem? Is it possible to somehow see the source code of the member function in a way that I can understand what is going on?
More details on changes I made:
I've separated this from main body of the question because I don't see it as being very relevant but it may be useful for the answerer. The SDK stitches videos together into a single video (creating 360 view videos). The demo project works fine as long as I use the demo video files. The video files are fed into the project using command line arguments. When I feed my own video files to the demo project, that's when I face this problem, otherwise the member function returns successfully and the project successfully creates a stitched video. The only thing I changed is the input to the project (i.e. the video files), I haven't changed the source code at all.
If the provider of the DLL doesn't deliver the source code, you obviously can't see it. That would be the common way to handle it - unless they are open source, their source code is the company's intellectual property, so of course they are not showing it to you.
If it is open source, you typically can download the debug-DLLs (which contain the source code). Microsoft also delivers many runtime DLLs in version with source code (but of course not Windows itself). Check in the SDK if there is a debug version of that DLL, and link with it instead of the one you are currently using.
So, in a nutshell, you can't see it unless they give it to you.
As stated by VTT and Aganju, I cannot step into the member function defined in the DLL unless the source code is provided to me with the DLL. This answers what I asked. For my specific case, I was working with NVIDIA VRWorks 360 Video SDK, the problem was caused by not having the right codec for the video files that get stitched. Although this is mentioned nowhere in the SDK documentation, the video codec that should be used is H264 - MPEG-4 AVC (part 10) (AVC1).

File organization/location within the computer

I have been learning c++ independently for about 3 months, and I have a question that has gone unanswered. How are the files organized within your computer so that the program knows where to look to find the files?
I know that you can save header files and source files as being separate from each other, but how does the program know where to look for these things? Where are they located? Where in the hierarchy (up or down, same folder) do they belong? Can I change where the computer looks for them?
This has been nagging at me for weeks and I have not found an answer. Does anyone know what I mean? Can you help?
Depends on the Operation System ("OS"). There's an environment variable called PATH that instructs the compiler where to look at. On Linux and Mac there are a few typical folders, so the compiler looks inside these folders.
In addition to these default searches, the compiler also looks in the same folder as the source files live. And you can always tell the compiler where to look at first.

Libraries VS2015

Good evening
I'm trying to set up a development environment on my newly Boot-Camped Windows 10.
I know how to link the include/lib in VS. On my Mac all my external libraries and include files are at either:
/use/local/ or /opt/local/
I'm wondering whether there is an easy way to do this on windows, or are there a way to force VS to always look in a particular dir?
Cheers
VS has the concept of property sheets which basically are a predefined set of properties for your project. Every C++ project includes by default few property sheets and there's even a special property sheet called Microsoft.Cpp.[Platform].user where [Platform] is either Win32 or x64. By editing the contents of this file you can set the paths for all your projects (or other arbitrary values such as macros).
To edit these files do either of the following:
Make a new CPP project in VS. Go to View->Other Windows->Property Manager. This will show a new pane in the current window and from there you can find the property sheet and edit as you see fit. This approach has the benefit of being more user-friendly as VS provides some nice GUI. Here's one tutorial
Find the files themselves (they are located in %LOCALAPPDATA%\Microsoft\MSBuild\v4.0), open them using your favourite text editor and do your magic. The files are XML-based so it's not awfully difficult.

Function call without definition(in header, no dlls or static libs)

I have a embedded controller code handed over, it has a bunch on .c files and some headers and a lot of associated files for the embedded processor, its a motorola MC9S12DT256 and it uses a not-so-good compiler - Cosmic. i used Visual studio(just a txt editor) for modifying the code and it changes the hex file being burned to the processor.
I got it earlier this week and spent most of my time on it and it worked ok for minor changes (where changin a value in the code and compiling again made the necessary changes) Now i have to make some major changes. The code calls certain functions which are not to be found any where in the all of the .hpp/.h/.cpp i got. there are no associated dlls as well. I tried to find some basic link and put it in a .sln and still most data is not recognized (as in i cant go to declaration of defn).
So my question is - how to get to the function definiton to where it is called when VS blanks out. Find all references also does no help
Thanks
PM
They may be compiler intrinsics (functions provided by the compiler rather then in a library). But it is not clear how you have determined that they do not exist in a static library or why you think you should be able to see a definition (as opposed to a declaration).
When using Visual Studio as an embedded project IDE, you should create the project as a "makefile project" (even if you don't actually have a makefile), and you need to add all the necessary header paths for your embedded code and the Cosmic compiler standard header folder as include files to the project - VS scans the header files for declarations for Intellisense code completion and browser navigation.

Is it possible to add a version number to a file that will be visible in Properties/Details in windows explorer

I have an unmanaged C++ project where I am writing data to a custom file format that I have defined.
What I would like to know is if there is a way to add a header that is compatible with Windows Explorer so that a version number will be displayed, as in the example below showing a Windows font.
The purpose of this is so that non-tech savvy users could simply right click and identify the version of the file, without having to open it in Notepad etc.
Any help would be appreciated.
Tom
You cannot achieve this for a file in general. But if your file format stores a version information, you can teach the Windows Explorer to display it.
You have to write a Shell Extension for the Explorer, that can extract arbitrary information out of your files. This extension must be installed on the target computer and registered in the registry.
An excellent guide on how to write and register Shell Extensions can be found here on CodeProject. (Part VIII should cover what you need)
The version information comes from VERSIONINFO resource, attached to a binary file, such as .EXE or .DLL. So it is easy to link such resource into your build target, this resource is also editable.
However, this is limited to the binary executable files, and you cannot attach this resource information to arbitrary files (as you wanted), including such as text files.
In VC just go to menu Project->AddResource and pick Version.