Quantcast
Channel: Visual C forum
Viewing all 15302 articles
Browse latest View live

VS Linker does not seem to "scan UserEnv.Lib" although it is in path.

$
0
0

I am trying to compile the following:

---------------------------------------

#include <UserEnv.h>
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
  DWORD Results;
  DWORD                dwFlags = 1;
  LPCTSTR              pMachineName = NULL;
  PSID                 *pSidUser = NULL ;
  GUID                 *pGuidExtension = NULL;
  PGROUP_POLICY_OBJECT *ppGPOList = NULL;
  Results =  GetAppliedGPOList( 0x01, pMachineName, pSidUser, pGuidExtension, ppGPOList);

      printf("hello don %x\n", &Results);

}

-----------------------

gpedit-explor.obj : error LNK2019: unresolved external symbol __imp__GetAppliedGPOListW@20 referenced in function _wmain

What I don't understand is why (when I use /VERBOSE) on linker, it is not even Searching UserEnv.Lib

What am I doing wrong?


Help needed VS 2015 Mixed mode (C++/CLI and native C++) Debug wont show native values anymore :¬( - was ok in VS 2013

$
0
0

Does anyone know any magic to get this to work again? -
Please - Pretty Please Grovel Grovel...

Used to be able to visualise the native C++ structures in CLI code - but no more
All I see is array sizes and "error: cannot obtain value"

I turned off all the new vs2015 debugger goodies as ordered
(because C++ is not supported language)

And I tried the "Enable Managed Compatibility Mode" NO Difference
I even tried the undocumented "Enable Native Compatibility Mode" No Difference

All code is x64 and compiled with Debugger->Mixed
Debugger run in Mixed mode

I realy dont want to go back to 2010
(even though, little of 2015 is of much use to mixed mode C++ coders like myself)

I am starting to wonder if I will ever get usable debugging/profiling tools for mixed cli/c++and native c++ development :¬(

I have waited so long and was so hopeful.



Bryan Mcloughlin


How does VC++ (2005) know which version of a SxS dll to use?

$
0
0

I have a small, dialog based app in VC++ 2005.  When I build it onMY workstation, the manifests specifies 4 DLLs: CRT, MFC, DebugCRT, and DebugMFX, all with the version number 8.0.50608.0.  The app runs onMY workstation, even though there is no version 8.0.50608.0 on MY workstation; the only versions I can find are 8.0.50727.x, where x varies from 47 to 6299.

How did VC++ decide that 50608 was the version that it wants to link to? Having linked to 50608, how does it run, when 50608 does not exist on my system?

If the linker decides to link to a specific version of a DLL, but that version does not exist on the target system, how can the appropriate version be found?  I tried to download the CRT distributable from Microsoft, but there was no way to select the version that I wanted; the only version availble for download is 8.0.50727.762 (which is NOT on the target machine, but which I already have, along with 6newer versions).

Converting MFC SDI app to MDI

$
0
0

I hope anyone wanting to do this work finds the following useful - copied from our internal docs

Migration from MFC SDI App to MDI App

Introduction

This technical note describes how to migrate from a SDI and MDI application. This work is sometimes needed when you create a SDI App project using the Visual Studio MFC Wizard and then later decide you really need a MDI App.

Setup

The migration work was identified by comparing the files generated by the Visual Studio 2013 MFC Application Wizard with Single document selected (SDI) rather than Multi document – tabbed docs selected (MDI). Other selections were common between the two projects:

  • Doc/View selected
  • SDL selected
  • Resources EN-US
  • Office 2007 – Black – no style switching
  • Shared DLL
  • No Compound Doc
  • File Extn = tmp
  • No Database
  • UI Features – default except
    •  Use menu bar & toolbar – user defined toolbar and personalised menu
  • Advanced Features – default except
    • Explorer selected
    • Output selected
    • Properties selected
    • Advanced frame menus

Summary

  1. Add ChildFrm class and implementation (derived from CMDIChildWndEx)
  2. Make resource changes
  3. Make changes to the InitInstance() function of your CWinAppEx class
    1. Use CMultiDocTemplate rather than CSingleDocTemplate
    2. A few other changes
  4. Make changes to your CMainFrame class
    1. Derive from CMDIFrameWndEx rather than CFrameWndEx
    2. Add some functions and change others

Additional Files to Create

You need to add the following files to your SDI project:

  • ChildFrm.cpp, .h – suggest you copy from a MDI project as there isn’t much in them

Resource Changes

You need to make changes to the {your project}.rc file in your SDI project:

Area

Item

Comment

IDR_MAINFRAME_MENU

ID_FILE_CLOSE

Add as missing in SDI

ID_WINDOW_CLOSE

Add as missing in SDI

ID_FILE_SAVE

Missing in MDI

ID_FILE_SAVEAS

Missing in MDI

ID_FILE_PRINT

Missing in MDI

ID_FILE_PRINT_PREVIEW

Missing in MDI

ID_EDIT_*

Missing in MDI

IDR_DiffTYPE

(all)

Add menu as missing in SDI

STRING TABLE

IDR_DiffTYPE

Add as missing in SDI changing to match value in your SDI   IDR_MAINFRAME except first item

IDR_MAINFRAME

Change to “{your project}” in SDI

ID_WINDOW_NEW

Add as missing in SDI

ID_WINDOW_ARRANGE

Add as missing in SDI

ID_WINDOW_CASCADE

Add as missing in SDI

ID_WINDOW_TILE_HORZ

Add as missing in SDI

ID_WINDOW_TILE_VERT

Add as missing in SDI

AFX_IDS_MDICHILD

Add as missing in SDI

ID_WINDOW_MANAGER

Add as missing in SDI


Changes to {your project}.CPP File in your SDI Project

Area

Change

Comment

Header

#include “ChildFrm.h”

InitInstance()

EnableTaskbarInteraction();

Add after AfxEnableControlContainer();

CMultiDocTemplate* pDocTemplate;

pDocTemplate =

new CMultiDocTemplate(IDR_{your project}TYPE,

           RUNTIME_CLASS(C{your   project}Doc),

           RUNTIME_CLASS(CChildFrame),

           RUNTIME_CLASS(C{your   project}View));

if (!pDocTemplate)

           return FALSE;

AddDocTemplate(pDocTemplate);

Replace CSingleDopTemplate code with CMultiDocTemplate

CMainFrame* pMainFrame = new CMainFrame;

if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))

{

           delete pMainFrame;

           return FALSE;

}

m_pMainWnd = pMainFrame;

Add after above CMultiDocTemplate code

m_pMainWnd->DragAcceptFiles();

Add after above CMainFrame code and remove   m_pMainWnd->DragAcceptFile() at end of function in your SDI project

pMainFrame->ShowWindow(m_nCmdShow);

Replace with same call with SW_SHOW param in your SDI project

Changes to MainFrm.h File in your SDI Project

Area

Change

Comment

Class

Derive CMainFrame from CMDIFrameWndEx

Change from CFrameWndEx in your SDI project

Make private DECLARE_DYNAMIC(CMainFrame)

Change from protected in your SDI project

Add afx_msg void OnWindowManager();

Missing in your SDI project

Changes to MainFrm.cpp File in your SDI Project

Function/Area

Change

Comment

IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWndEx)

Change from CFrameWndEx in your SDI project

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)

Change from CFrameWndEx in your SDI project

MESSAGE MAP

ON_COMMAND(ID_WINDOW_MANAGER, &CMainFrame::OnWindowManager)

Add as missing in your SDI project

CMainFrame::OnCreate()

if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)

Change from CFrameWndEx in your SDI project

CMDITabInfo mdiTabParams;

mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE;

mdiTabParams.m_bActiveTabCloseButton = TRUE;     

mdiTabParams.m_bTabIcons = FALSE;     

mdiTabParams.m_bAutoColor = TRUE;     

mdiTabParams.m_bDocumentMenu = TRUE;

EnableMDITabbedGroups(TRUE, mdiTabParams);

Add below previous change as missing in your SDI project

EnableWindowsDialog(ID_WINDOW_MANAGER, ID_WINDOW_MANAGER, TRUE);

Add below CMFCVisualManagerOffice2007::SetStyle() as missing in your   SDI project

ModifyStyle(0, FWS_PREFIXTITLE);

Add at end of function as missing in your SDI project


Changes to MainFrm.cpp File in your SDI Project (continued…)

Function/Area

Change

Comment

CMainFrame::

PreCreateWindow()

if( !CMDIFrameWndEx::PreCreateWindow(cs) )

Change from CFrameWndEx in your SDI project

CMainFrame::

SetDockingWindowIcons()

UpdateMDITabbedBarsIcons();

Add at end of function as missing in your SDI project

CMainFrame::

AssertValid()

CMDIFrameWndEx::AssertValid()

Change from CFrameWndEx in your SDI project

CMainFrame::

Dump()

CMDIFrameWndEx::Dump(dc);

Change from CFrameWndEx in your SDI project

CMainFrame::

OnWindowManager()

void CMainFrame::OnWindowManager()

{

           ShowWindowsDialog();

}

Add as missing in your SDI project

CMainFrame::

OnToolbarCreateNew()

CMDIFrameWndEx::OnToolbarCreateNew(wp,lp);

Change from CFrameWndEx in your SDI project

CMainFrame::

LoadFrame()

!CMDIFrameWndEx::LoadFrame(nIDResource, dwDefaultStyle, pParentWnd,   pContext))

Change from CFrameWndEx in your SDI project

CMainFrame::

OnSettingChange()

CMDIFrameWndEx::OnSettingChange(uFlags, lpszSection);

Change from CFrameWndEx in your SDI project



Optional Changes

You might also want to make the following changes to your SDI project

Stop each document being added to the taskbar in Windows 8

BOOL CChildFrame::CanShowOnTaskBarTabs()

{

     return FALSE;

}

Stop the default MDI dialog box appearing on File | New

Add to function declarations in {your project}.h

afx_msg void OnFileNew();

In message map  of {your project}.cpp remove any existing entry and add

ON_COMMAND(ID_FILE_NEW, &C{your project}App::OnFileNew)

Provide implementation in {your project}.cpp

void C{your project}App::OnFileNew()

{

//   CWinAppEx::OnFileNew();

POSITION pos = GetFirstDocTemplatePosition();

while (pos != NULL)

{

     CDocument *pDoc = NULL;

     CMDIChildWnd* pFrame = NULL;

     CDocTemplate* pTemplate = NULL;

     if ((pTemplate = GetNextDocTemplate(pos)) != NULL)

     {

           if ((pDoc =

pTemplate->CreateNewDocument()) == NULL)

                 break;

           pDoc->SetTitle(_T("hello"));

           if ((pFrame = (CChildFrame*)

(pTemplate->CreateNewFrame(pDoc,NULL)))== NULL)

                 break;

           pTemplate->InitialUpdateFrame(pFrame, pDoc);

     }

}

}


will stott

Cholesky Decomposition in C++

$
0
0

I have a source code for computing Cholesky Decomposition in C++, but I can get its result. Thank you for editing my code.

#include <iostream>
#include <cmath>

using namespace std;

double **Cholesky_Decomposition(double **p, long m, long n);
double **Create2DArray(long rows, long columns);
void Output2DArray(double **p, long rows, long columns);

// Cholesky_Decomposition returns the Cholesky Decomposition Matrix.
double **Cholesky_Decomposition(double **p, long m, long n)
// Licensing: It is closed and private code.
{
    long i, j, k; double temp = 0, temp2 = 0;
    if (m != n)
    {
        cout << "Matrix is not square";
        exit(1);
    }
    // Initialize and populate matrix L which will be the lower Cholesky
    double **L = Create2DArray(m, n);
    for (i = 0; i < m; i++)
        for (j = 0; j < m; j++)
        {
            temp = 0; temp2 = 0;
            if (i > j)
            {
                if (j > 0)
                {
                    for (k = 1; k < j + 1; k++)
                        temp2 += (L[i][k - 1] * L[j][k - 1]);
                }
                L[i][j] = (p[i][j] - temp2) / L[j][j];
            }
            else if (i == j)
            {
                for (k = 0; k < i; k++)
                    temp += pow(L[i][k], 2);
                L[i][j] = sqrt(p[i][j] - temp);
            }
            else
                L[i][j] = 0;
        }
    return L;
}

// Create2DArray ia a function that creates a reference (double) dynamic 2D-Array
//      using Pointer.
double **Create2DArray(long rows, long columns)
// Licensing: It is closed and private code.
{
    double **p = new (nothrow) double *[rows];
    for (long i = 0; i < rows; i++) p[i] = new (nothrow) double[columns];
    return p;
}

// Output1DArray is a function that prints out the value of 1D-Array.
void Output2DArray(double **p, long rows, long columns)
// Licensing: It is closed and private code.
{
    cout << "2D-matrix: ";
    for (long i = 0; i < rows; i++)
    {
        cout << "\n";
        for (long j = 0; j < columns; j++)
            cout << p[i][j] << "\t";
    }
    cout << "\n";
}

void main()
{  
    double **a = Create2DArray(5, 5);
    a[0][0] = 18;
    a[0][1] = 22;
    a[0][2] = 54;
    a[0][3] = 42;
    a[0][4] = 48;
    a[1][0] = 22;
    a[1][1] = 70;
    a[1][2] = 86;
    a[1][3] = 62;
    a[1][4] = 49;
    a[2][0] = 54;
    a[2][1] = 86;
    a[2][2] = 174;
    a[2][3] = 134;
    a[2][4] = 38;
    a[3][0] = 42;
    a[3][1] = 62;
    a[3][2] = 134;
    a[3][3] = 106;
    a[3][4] = 92;
    a[4][0] = 15;
    a[4][1] = 85;
    a[4][2] = 14;
    a[4][3] = 36;
    a[4][4] = 78;
    a = Cholesky_Decomposition(a, 5, 5);
    Output2DArray(a, 5, 5);
    system("pause");
}

WebBrowser not sending back the authorization data

$
0
0

Hello

I have developed Embedded WebBrowser using IE WebBrowser control in C++. I have also implemented IAuthenticate. Now when it sends the http request then my server sends back HTTP/1.1 401 Not Authorized. I checked using packet tracer that my WebBrowser is not sending any data after that.

Could someone please tell me if I am forgetting to implement anything? Or anything I have done wrong? There are very less samples and solutions for C++ for WebBrowser Control on the internet.

Thanks


Warning C4945: 'ExtensionAttribute' : cannot import symbol

$
0
0

Dear Everyone,

I got following warning message when rebuild a solution using .Net 4.0:

c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\system.core.dll : warning C4945: 'ExtensionAttribute' : cannot import symbol from 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\system.core.dll': as 'System::Runtime::CompilerServices::ExtensionAttribute' has already been imported from another assembly 'mscorlib'
1>          c:\windows\microsoft.net\framework\v4.0.30319\mscorlib.dll : see declaration of 'System::Runtime::CompilerServices::ExtensionAttribute'
1>          first seen type is used; re-order imported assemblies to use the current type
1>          This diagnostic occurred while importing type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Could anyone help me to resolve the warning?

Thanks in Advance,

Dennis

mbstate_t is not backwards compatible between VS 2015 and VS 2013

$
0
0

The definition of mbstate_t has changed from: 

typedef int mbstate_t;

to

typedef struct _Mbstatet
{ // state of a multibyte translation
unsigned long _Wchar;
unsigned short _Byte, _State;
} _Mbstatet;

typedef _Mbstatet mbstate_t;

This is not backwards compatible and seems to imply all components of a Windows desktop application will need recompiling with VS 2015 if I am to use VS 2015.  Obviously "all" is too strong here, only components usingmbstate_t are affected.  However, that's still not a good situation.

Could you please explain best practices for upgrading to VS 2015?  Are we expected to recompile?  Am I missing something here which means this isn't an issue?

Given that this struct has changed I have bigger concerns that there may be other breaking changes between VS 2013 and 2015.  Is there a list of these anywhere?


Windows 10 Touch Friendly Context Menu

$
0
0

In many places in Windows 10 you get a touch friendly context menu when showing a context menu using tap and hold.
(All items have a larger height, For example when doing tap and hold on the desktop or taskbar area,  But it is still missing in many places)

But I do not find any information about how to implement this.

I get the context menu to be called on Tap and Hold but how can I know if the call for the context menu is from
mouse or touch ?
Becuse if I can know that I can use a custom drawn menu that will calls WM_MEASUREITEM for touch. 

or maybe there is a better way of doing this ?

Constant strings in VS2013

$
0
0

Greetings everyone.

I need help.

My company does most of its work in c# these days, but I am responsible for looking after one large legacy project in c++. Last week the Poohbahs decided to migrate everything from VS2010 to VS2013 (they're a conservative bunch who don't rush into things, obviously). We could have kept the c++ code compiling in 2010 compatibility mode, but it was decided to convert completely to 2013.

When I first compiled with the new VS, it forced me to switch on the unicode character set in the project options, and to upgrade the WINVER switch from 500 to 501.

When I compiled, I got more than 2000 errors. The errors of of several kinds, but the common denominator seems to be the treatment of constant strings, presumably due to the change to unicode. Here is a pic of some of the error messages and the lines of code that produced each one.

Obviously, I can fix each individual error by doing a cast (by putting "_T" in front of each string, or whatever), but there are two thousand of the swines. I don't want to fiddle around changing thousands of lines, possibly introducing instability into what has thus far been very stable code. I also don't like the idea of wasting time only to have to go through it all again the next time Microsoft decides to change its string handling.

So...

Is there a better way? Is there some switch or compiler directive somewhere that I can use to get the string handling to work as it is without the need to change 2000 individual lines?

VS 2015 RC: MBCS for MFC

$
0
0
Where can I please download the Multibyte MFC Library for Visual Studio 2015 RC?

why do accelerators work on dialogs?

$
0
0

Accelerators can be used with the accelerator table resource. And the ALT+"key" commands can also be used together with menus. But... when I use the ampersand in the text of a button... why exactely is this generating an accelerator? How's it working? Does the dialog manager scan the text's of all controls for amptersand's or is this just something the mfc-dialogs do or ... how's it working? I would like to understand the system behind it...

Rudolf

MFC dialog background is emf image and need to have edit box on the dialog which is transparent through which the portion of background of the edit box can be seen.

$
0
0

Hi forum,

I need help in creating edit box which is transparent in nature so that the background emf image of dialog can be seen from the edit box area.

Please provide the code for the class derived fro CEdit which is transparent and no flickering issues while typing or doing backspace to erase the characters in MFC.

Thanks and Regards,

Kiran

Performance degradation from VC2003 to VC2008

$
0
0

Hi,

We have a 3rd party library which after migration from VC Runtime 2003 to VC Runtime 2008, the performance has degraded over twice. A method which was earlier taking 8 seconds is now taking ~13-16 seconds.

Is there any optimization that we are missing?

error LNK2001: unresolved external symbol _CLSID_MyCustom_Video_Render

$
0
0
Hi,

I have written a custom directshow filters and created a dll for it. Everything is compiled and the dll and the  filters was able to registered in the registry excepting when I link it to the application, I got the unresolved external symbol for the CLSID filter:

error LNK2001: unresolved external symbol _CLSID_MyCustom_Video_Render

Please help.

/Ben


char[] to bitmap

$
0
0

Hi, currently i'm working on an application to read data from a 4000 x 4000 CCD sensor. I can get the data from the CCD sensor into my computer, but only as an char array. This, i would like to convert to an bitmap. So what i did was, create a header for the bitmap, and tried to convert it to a memorystream. (bottom of following code). the error occurs in the line where I do this: 

MemoryStream^ ms = gcnewMemoryStream(raw); 

and says: No instance of constructor "System::IO::MemoryStream::MemoryStream" matches the argument list

argument types are: (unsigned char[48000054])

could anyone tell me how to convert my char [] to Bitmap the proper way?

void array2bmp(constchar * img,intw, inth, PictureBox^pb)

 

Bitmap^ b; 

//FILE *f;

int filesize = 54 +  (w+ ((4 - (w % 4)) % 4)) *h * 3;  //w is your image width, h is image height, both int

unsignedchar bmpfileheader[14] = {'B','M', 0,0,0,0, 0,0, 0,0, 54,0,0,0};

unsignedchar bmpinfoheader[40] = {40,0,0,0, 0,0,0,0, 0,0,0,0, 1,0, 24,0}; 

unsignedchar bmppad[3] = {0,0,0};

bmpfileheader[ 2] = (unsignedchar)(filesize    );

bmpfileheader[ 3] = (unsignedchar)(filesize>> 8);

bmpfileheader[ 4] = (unsignedchar)(filesize>>16);

bmpfileheader[ 5] = (unsignedchar)(filesize>>24);

bmpinfoheader[ 4] = (unsignedchar)(      w    );

bmpinfoheader[ 5] = (unsignedchar)(      w>> 8);

bmpinfoheader[ 6] = (unsignedchar)(      w>>16);

bmpinfoheader[ 7] = (unsignedchar)(      w>>24);

bmpinfoheader[ 8] = (unsignedchar)(      h    );

bmpinfoheader[ 9] = (unsignedchar)(      h>> 8);

bmpinfoheader[10] = (unsignedchar)(      h>>16);

bmpinfoheader[11] = (unsignedchar)(      h>>24);

memcpy(raw, bmpfileheader, 14);

memcpy(raw+14, bmpinfoheader, 40); 

unsignedchar *dataptr = raw+54;

for(int i=h-1; i>=0; i--)

{

for(int j=0; j<w; j++)

{

  if ((i & 1) == 0)  //green - red line

  {

  if (j & 1) //  red

  {

  *dataptr++ = *(img+i*w+j+w-1); //blue

  *dataptr++ = *(img+i*w+j-1); //green

  *dataptr++ = *(img+i*w+j);//red 

  }

  else       // green

  {

  *dataptr++ = *(img+i*w+j+w); //blue

  *dataptr++ = *(img+i*w+j); //green

  *dataptr++ = *(img+i*w+j+1);//red  

  }

  }

  else       //blue - green line

  {

  if (j & 1) // green

  {

  *dataptr++ = *(img+i*w+j-1); //blue

  *dataptr++ = *(img+i*w+j); //green

  *dataptr++ = *(img+i*w+j-w);//red   

  }

  else       // blue

  {

  *dataptr++ = *(img+i*w+j); //blue

  *dataptr++ = *(img+i*w+j+1); //green

  *dataptr++ = *(img+i*w+j-w+1);//red    

  }

  }

}  

MemoryStream^ ms = gcnewMemoryStream(raw); 

pb->Image = b->FromStream(ms); 

}

Thanks in advance;)

RC1015 error opening winresrc.h

$
0
0

I have a cross platform c++ project. In this project I am using my dll's which are using .rc files. On Windows eveything works, but on Windows Phone it doesn't as the winresrc.h is not a part of Windows Phone sdk.

    C:\Program Files (x86)\Windows Phone Kits\8.1\\Include\windows.h(81): fatal error RC1015: cannot open include file 'winresrc.h'.


 How else can i use resources in native c++ libraries on Windows Phone platform ?

I believe it is worth mentioning that the compiled does not complain about .ico files and even dialogs.

Control palettes in an MFC ribbon application.

$
0
0

I am trying to add control palettes to a multi-document MFC ribbon application.    I need a command from the palette to operate on the active View window and leave it with the keyboard input focus (so that its caret is visible).

The control palette is a modeless dialog box, whose parent is the main frame window, and the question is what styles to give the dialog box window.

If I make it a WS_POPUP then clicking on the control palette activates it.  The main frame window caption bar goes grey, and then turns back to blue when the active view regains the focus.  This is very distracting when control palette commands are designed to be used in rapid succession.

It seemed like a better idea to make it a WS_CHILD (like a toolbar).   This can be made to work more smoothly.   However, if I now drag he control palette dialog window over the ribbon bar, then, when the mouse button is released, the control palette ends up under the ribbon bar, and the only way to grab it, to get it back, is first to minimise the ribbon bar.

Is there any way to prevent this from happening?     

Dave


David Webber Author of Mozart music notation software http://www.mozart.co.uk

Disable warning for unused local variables

$
0
0

Hi,

I have a problem with the unused local variables warning. The code:

#define CAMLxparam1(x) \
  struct caml__roots_block caml__roots_##x; \
  int caml__dummy_##x = ( \
    (caml__roots_##x.next = caml_local_roots), \
    (caml_local_roots = &caml__roots_##x), \
    (caml__roots_##x.nitems = 1), \
    (caml__roots_##x.ntables = 1), \
    (caml__roots_##x.tables [0] = &x), \
    0)

It is part of the headers for the ocaml c interface. I tried to deactivated the warning for the unused caml_dummy_##x warning by using the pragma warning to disable the warning but it does not work.

Vary the starting form

$
0
0
I have an app which starts on Form1. I have several other forms which operate independently from the first form or from each other. In Visual Basic I was able to start on a different form by a simple change in the Project configuration. Is there a way to do the same thing using Visual C++?
Viewing all 15302 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>