标签: c++-cli

编译为x64的C++/CLI项目中定义的_WIN64在哪里?

它似乎是在我创建的每个项目中自动添加的,我为x64编译,但在选择x64配置时,它甚至不会出现在项目的配置属性/(C/C++)/预处理器中.

win64 c++-cli

2
推荐指数
1
解决办法
7158
查看次数

我是否在某处读过C++/CLI将我们转移到像Java这样的"头文件"社会

如果是这样,我应该在创建类时尽量减少头文件的使用吗?

c++-cli header file

2
推荐指数
2
解决办法
3410
查看次数

如何在.NET中修剪数组?

说我有一个阵列

array<double>^ buffer = gcnew array<double>(100);
Run Code Online (Sandbox Code Playgroud)

我想要一个像以下一样的功能:

void foo(array<double>^% buffer)
{
    Array::Resize(buffer, 10);
}
Run Code Online (Sandbox Code Playgroud)

但是当你想修剪数组时,它不会分配和/或移动和缓冲[0].

.net vb.net c++-cli visual-c++

2
推荐指数
1
解决办法
3557
查看次数

得到当前时间?

如何在VC++ CLI Visual Studio 2008中获取当前时间,

c++-cli visual-studio-2008

2
推荐指数
1
解决办法
2万
查看次数

C++/CLI前向声明问题

我一直在尝试进行前向声明以允许类之间的访问.我在这里读到:

  • 在向前声明b中的A时,我不能包含"ah"文件

在前向声明期间,我无法找到很多名称空间.我相当肯定我搞砸了(我只是不知道把它们放在哪里).我得到的错误是在相关代码片段之后.

这就是我做的:

  • 我已将我的类定义从.h分割为.cpp和.h

  • 我的.h文件中有#ifndef警卫

这些是我的文件:

Form1.cpp

#include "stdafx.h"
#include "OpenGL.h"
#include "Form1.h"
#include "serialcom.h"
#include "calculations.h"

using namespace GUI_1;

GUI_1::Form1::Form1(void)
    {....
    }
void GUI_1::Form1::chlabel2(float num)
    {....
    }
int GUI_1::Form1::updateHand(int source){....}
void GUI_1::Form1::resetHand(){....}
Run Code Online (Sandbox Code Playgroud)

Form1.cpp错误每个定义都是一样的

error C2872: 'GUI_1' : ambiguous symbol
could be 'GUI_1'
or       OpenGLForm::GUI_1'
Run Code Online (Sandbox Code Playgroud)

Form1.h

#ifndef form1
#define form1

using namespace OpenGLForm; 
//error C2871: 'OpenGLForm' : a namespace with this name does not exist
ref class COpenGL;

namespace GUI_1 {

    using namespace System;
    using namespace …
Run Code Online (Sandbox Code Playgroud)

c++ c++-cli forward-declaration winforms

2
推荐指数
1
解决办法
1784
查看次数

C++前向声明和"不允许不完整类型"错误

我有两个类(或更好的是,头文件)是我的C++程序的一部分,我根本无法使这一切工作!作为我的应用程序的一部分,他们基本上需要彼此的数据才能正常运行.

不要通过阅读本代码的内容来折磨自己; 我只需要解决前向声明相互包含问题,所以只需看看代码中与此问题相关的那些部分.

错误发生在第二个代码片段,最后(我不得不从第一个片段中删除大量代码,所以我可以发布问题,我想这与我的问题无关).

introForm.h

#pragma once
#include <stdlib.h>
#include "creditsForm.h"
#include "registerForm.h"
#include "aboutForm.h"
#include "QuizForm.h"
#include <windows.h>
#include <time.h>
#ifndef __introForm__H__
#define __introForm__H__

namespace InteractiveQuiz {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    ref class QuizForm;

    /// <summary>
    /// Summary for introForm
    /// </summary>
    public ref class introForm : public System::Windows::Forms::Form
    {
    public:
        introForm(void)
        {
            InitializeComponent();
            //
            //TODO: Add the constructor code here …
Run Code Online (Sandbox Code Playgroud)

c++ c++-cli declaration forward incomplete-type

2
推荐指数
1
解决办法
3万
查看次数

Console :: WriteLine()与cout

我刚刚开始尝试自学C++(我现在已经是一名C#程序员已经有一年了)而且我无法理解我的生活中Console :: WriteLine("Hello World")之间的区别是什么和cout <<"你好世界",在旁注我甚至不确定cout和cin甚至是什么,所以任何帮助也将不胜感激

c++ clr cout c++-cli cin

2
推荐指数
2
解决办法
3万
查看次数

如何在C++/CLI界面中声明默认的索引属性

如何在C++/CLI - Interface中声明默认的索引属性.
(请原谅重复的,完全限定的命名空间符号,因为我只是学习C++/CLI,并且希望确保C++和C#之间没有语言原语的混淆)

代码是

public interface class ITestWithIndexer
{
    property System::String ^ default[System::Int32];
}
Run Code Online (Sandbox Code Playgroud)

编译器总是抛出"错误C3289:'默认'一个普通的属性不能被索引".
我的错误在哪里?

PS:在C#中,它就是这样

public interface ITestWithIndexer
{
    System.String this[System.Int32] { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为C++/CLI?

谢谢!!

default c++-cli indexer properties interface

2
推荐指数
1
解决办法
1748
查看次数

通用列表是连续存储在内存中的

有各种文章,例如msdn.microsoft.com/en-us/library/ms379570(v=vs.80).aspx,这似乎表明通用List的项目存储在连续的内存中.但无论如何,我无法找到任何明确的声明.有谁知道一个.请注意,非常清楚地表明数组是连续的,但此问题适用于List.

还有什么方法可以直接访问List使用的内存?

.net c# c++-cli

2
推荐指数
1
解决办法
1065
查看次数

端口到VS2015/.NET 4.6后,C++/CLI DLL在加载时崩溃

老实说,这可能是VS2015的愚蠢:迁移的项目编译,但不会运行("调试断言失败!"),但没有答案,我有更多的细节.

最近将我们的代码库从VS2010移植到目标v4.6的v4.0到VS2015.我们有一个托管C++ DLL来提供对我们的C++代码库的.NET访问.所有引用它的.NET应用程序在启动时崩溃.它似乎正在崩溃注册静态以便在退出时进行破坏.

这是调试callstack:

ntdll.dll!RtlValidateHeap() Unknown
KernelBase.dll!_HeapValidate@12()   Unknown
ucrtbased.dll!_CrtIsValidHeapPointer(const void * block) Line 1385  C++
ucrtbased.dll!_msize_dbg(void * block, int block_use) Line 1037 C++
ucrtbased.dll!_msize(void * block) Line 30  C++
ucrtbased.dll!_recalloc_dbg(void * block, unsigned int count, unsigned int element_size, int block_use, const char * file_name, int line_number) Line 771   C++
ucrtbased.dll!_register_onexit_function::__l23::<lambda>() Line 112 C++
ucrtbased.dll!__crt_seh_guarded_call<int>::operator()<void <lambda>(void),int <lambda>(void) &,void <lambda>(void) >(__acrt_lock_and_call::__l3::void <lambda>(void) && setup, _register_onexit_function::__l23::int <lambda>(void) & action, __acrt_lock_and_call::__l4::void <lambda>(void) && cleanup) Line 199  C++
ucrtbased.dll!__acrt_lock_and_call<int <lambda>(void) >(const __acrt_lock_id lock_id, …
Run Code Online (Sandbox Code Playgroud)

.net dll c++-cli visual-studio-2015

2
推荐指数
1
解决办法
2247
查看次数