_set_sbh_threshold in VS 2010 - visual-studio-2010

I am trying to port an application that was developed with VS 2008. I have imported project into VS 2010 and built it. I have got several errors, related to _set_sbh_threshold function. In MSDN I have found that this function doesn't supported by Windows Vista or Windows 7. Also this function was removed from the VS 2010 malloc.h file. So, is there any equivalent functions in VS 2010? Maybe there is no sense to use this function at all in new Windows?

As Windows Vista onwards do not use this value for setting the SBH size, there is no point is setting it via that function. If what you are looking for is a single version of code that will run as intended across all Windows versions from 95 onwards then you are out of luck and will have to maintain 2 separate versions.

Related

Running ARCHICAD project in VS C++ Express 2013

I am learning archicad and trying to open an existing example from API Development Kit in VS Express C++ 2013. I have installed SDK 7.1. in order to 64 development as VS Express doesn't run it by default. I am having trouble to run the example.
However, I installed all the necessary components and programs. This error window pops up all the time I try to run. I really have no clue how to make an archicad sample project run in VS C++ Express 2013.
The third line in Russian is translated as: "Impossible to find the designated folder".
I copied the API DevKit folder into the VS Express folder, doesn't help.
Please, help if someone faced such a problem or does all this stuff.
P.S. I need to run ArchiCAD in VS C++ Express.
This is the print screen:
As a former Archicad API developer, I would definitely recommend you to use Visual Studio 2005 Express.This specific version (assuming you are developing for AC12 and above), is compatible with the API (I developed for AC13 and AC15, it worked fine). That is also recommended by Graphisoft itself.
for further information:
http://www.archicadwiki.com/Developer/Getting%20Started%20with%20the%20API%20DevKit#Getting_Started_with_the_API_DevKit
You have to check the encoding of APIdefs_Automate.h. If it is ANSI, it will fail. The encoding must be UTF-8.
For older archicad projects you had to use vs2010. For the new 21 they upgraded to vs2015. To use vs2015 in older projects you have to have vs2010 installed to use it's v100 platform toolset. Then when you open an older project with the new visual studio, it asks for upgrading the project, here say no and you are good to go.

dll built with visual studio 2010 / windows 7 => usable on Windows 6?

Question from a Linux/Mac developer: I have compiled a 32-bit .dll (release flavor) under Windows 7 using Visual Studio 2010. Should this .dll be usable under all flavors of Windows 6 (a.k.a. Vista, if I'm not mistaken)?
Many thanks and RTFMs appreciated,
John Clements
In general: yes.
All current versions of the .Net framework run on both Vista and Win7.
Note that if you make calls into the native platform, either directly or via the Windows API Code Pack, you could have portability problems if you use functions available only in Win7. But for just straight .Net development, you should have no issue in running on any supported version of Windows.
Yes, the dll format didn't change for Windows 7. Only thing to remember is that if it's a .Net dll, the target system must have the proper .Net installed or the appropriate C/C++ runtime.
You're supposed to #define the _WIN32_WINNT macro to tell what version of Windows you want to support. The default in the SDK that ships with VS2010 is 0x600 which avoids you ever linking to an API function that is not available in Vista. So, yes, you're probably good to go.

Will VS2008 compile binaries compatible with Windows 7

I'm using Microsoft Visual Studio 2008 (VC9) to compile a project that has a .dsw file. I already have the 2010 and would prefer to use it, but it seems this dsw was built for 2008.
I'd like to compile and produce a binary that's also compatible with Windows 7. My questions:
if I compile with 2008, will the resulting binary be compatible with Windows 7? I'm not sure at which version of VS did Windows 7 support start.
or does this have nothing to do with the VS version, and is instead related to the Windows SDK? If that's the case, can I use VS2008 with a newer Windows SDK?
Can someone please clarify.
Microsoft has a great backwards compatibility "story", so pretty much anything you compile with any version of Visual Studio/Visual C++ will be compatible with Windows 7. The same may not neccessarily apply in reverse, i.e. if you use an API that's introduced in Windows 7, your application will error when you try to run it on prior versions of Windows.
There are a couple of things to consider though:
If the project was originally written to target Windows XP or earlier, it may fall foul of UAC
There are changes to directory structures (such as %systemdrive%\Documents and Settings becoming %systemdrive%\Users) that are fairly well handled by the link that Windows 7 creates in the root of `%systemdrive%, but you may fall foul of these.
VS2010 includes version 7.0 of the Windows SDK and VS2008 does not. You need Windows SDK v7.0 if you want your app to take advantage of Windows 7 features like jump lists.
Since you already have VS2010 installed, you can just change your include file / lib file paths in VS2008 to point to the Windows SDK v7.0 instead of the default one provided with VS2008. This is assuming you need that version of the SDK.
You do not need the latest Windows SDK if you do not plan to use the latest Windows 7 features like ribbons and jump lists. If you are building your app for the lowest-common-denominator OS (i.e. Windows XP), then really you should be fine using VS 2008 with default settings.
The other concern is, if your code was originally written before Windows Vista came out, it is likely that it will not work properly on Windows 7 unless it is run in Administrator mode, which is something you want to avoid. The only way to fix that is to rewrite much of your code to avoid writing to certain protected directories and avoid using certain APIs that require Administrator privileges.
Windows SDK is well backward compatible. See binary compatibility report between Windows 6.0 and Windows 7.0 on x86_64 generated by the abi-compliance-checker tool for the detailed comparison.
Reports for other Windows versions are here: https://abi-laboratory.pro/index.php?view=windows

where does msscript.ocx gets installed from

I'm using msscript.ocx in my application which is an activex scripting host for windows.
Although I want to be able to use the same for XP embedded(XPe) which's highly customizable.
1.I want to know whether on XPe, msscript.ocx can be optionally installed or not?
2.Where does it get installed from, IE?
3.Or is it a windows core component which gets installed during the XPe setup?(I know one can unregister it, but can it be an optional installation)
Answering any or all of these questions will be of great help to me.
Thanks in advance.
Sam.
Microsoft's documentation of the MSScript.ocx library is somewhat contradictory on this issue. The short answer is, starting with Windows 2000, the MSScript.ocx library became part of the Windows OS. Subsequent service packs for Windows 2000, XP, and 2003 included bug fixes (1,2,3) for this library. Since that time, the library has remained part of the 32bit portion of Windows and is still included with Windows 7/2008 R2. Even 64bit versions of Windows still include msscript.ocx with WOW64 in C:\Windows\SysWOW64.
For a little history of this library's distribution keep reading.
Msscript.ocx was originally included on the Visual Studio 6 CD as a "optional" library - optional meaning it had to be manually installed. While the library was part of Visual Studio, it was migrated to being part of the Windows OS starting with Windows 2000.
This is where the confusion comes into play. Since msscript.ocx is considered to be a component of both VS6 and Windows 2000, updates were distributed in service packs for both. Even after the last service pack for VS6 was released, additional bug fixes needed to be distributed for older OS's, so a separate download was created specifically targeting Windows 95, 98 and NT4.
This download is targeted for older OS's for the simple fact that it had become a part of the OS in "modern" versions of Windows. If you are using Windows 2000 or greater, the download is unnecessary and - in my experience - can cause compatibility problems.
I think it is not shipped with Windows XP(not a 100% sure)...
But the best choice is to ship it with your installer(even if it was shipped, it can be removed). About the installing - you can put it where you want (in the program folder in Program Files is ok), the important thing is to register it.
The best choice for making installers - Wix
EDIT: reference
The Script control ships with Visual
Basic 6.0; however, Visual Basic 6.0
setup does not install the Script
Control for you. The control is
located in the CD directory
Common\Tools\VB\Script. To install the
script control, try the following
steps:
I think this answers your question....
For those having issues getting MSSCRIPT.OCX to work do the following:
Go to References in Project settings:
Microsoft Script Control 1.0
Microsoft Scripting Runtime
Microsoft Scriptlet Library
Check all those on.
you'llneed to change your development environment to produce a 32 bit version of your appliation, which for most apps won't matter.
For this goto Project,
then select Properties,
select Compile,
Target CPU: x86
In your code, and i'm using visual studio 2019,
' by using the references above the ScriptControl
' should become available for inclusion into your source c
Dim ms As ScriptControl = New ScriptControl
ms.Language = "JavaScript"
ms.Reset()
Try
ms.ExecuteStatement(RichTextBox1.Text)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Easiest way to use Vista icons in VS 2005?

I've downloaded a Vista icon from the web for a new application I'm developing. When I try to compile it in Visual Studio 2005 C++, I get an error message:
error RC2176 : old DIB in res\XXXXX.ico; pass it through SDKPAINT
The error message seems a little misleading, I think the "old DIB" is actually a newer format that it wasn't expecting. I've never heard of SDKPAINT, and Search doesn't find it installed on my system anywhere. Microsoft claims SDKPAINT comes with the Windows 3.0 SDK, but I can't download any SDK due to incompatibilities with our firewall.
I don't really need anything Vista specific in this icon, so anything that would dump the incompatible bits would be fine.
I did a little more digging, and I found this previous question:
Which Icon Editing Software would you recommend for creating icons for apps
The accepted answer for that question suggested IcoFX. I downloaded that and used it to delete the 256x256 and 128x128 versions of the icon, and now everything's fine.
There are two more ways to achieve this in Visual Studio 2005:
replace rc.exe and rcdll.exe of your Visual Studio 2005 installation with the ones from a newer SDK (e.g. Windows Vista, 7 ...) or DDK/WDK (ditto)
or integrate the newer SDK into your Visual Studio 2005 using the respective tool that comes with the SDK
The resource compiler is the part that creates the .res files and then the usual Visual Studio 2005 linker (with the first option) or the SDK tool chain's liner links that into the binary. Meaning that even in conservative scenarios where it is frowned upon to upgrade the tool chain as a whole, this should be harmless.

Resources