C++ cli C/CLI中的活动报告

我们可以在C++/CLI中使用Active Reports 7.0吗?我刚刚开始使用活动报告。我试着用C#编写一份报告,没有任何问题。我尝试在C++/CLI中执行相同的操作,但无法使用“活动报告”工具箱。同时,在运行应用程序时,也会出现许可错误 生成基于代码的设计器无法使用C++/CLI。你也不能用C++写报告中的“脚本”。但是,您可以将报告设计为替代,然后不应该通过类(例如)实例化和调用C++中的任何问题。如下所示: GrapeCity::ActiveReports::SectionRepor

C++ cli 如何解析IP地址?

使用C++/CLI,我想从URL解析主机IP。我如何才能做到这一点?既然您有可用的.NET framework(您真幸运),为什么不使用: IPHostEntry^ hostInfo = Dns::GetHostByName("www.blah.com"); 这在System::Net名称空间中。既然您有可用的.Net framework(您真幸运),为什么不使用: IPHostEntry^ hostInfo = Dns::GetHostByName("www.blah.com"); 这在S

C++ cli 是否从数组中删除值?

如何取出此阵列中的一行 array< array< int^ >^ >^ sample = gcnew array< array< int^ >^ >{ gcnew array<int>{0, 0, 0, 0, 0}, gcnew array<int>{1, 1, 1, 1, 1}, gcnew array<int>{2, 2, 2, 2, 2}, };

C++ cli c+中的类别属性+/CLI

我读了《代码》并读了《分类属性》 c++/cli中的CategoryAttribute是什么?虽然我认为这很清楚,但我有几秒钟的时间来回答 它是一个CLR属性类(通过反射可用的修改器),用于指定属性应在属性网格视图中列出的类别/分组。例如,当你编辑表单时,你会更改文本、大小、停靠等值。通过谷歌:msdn不清楚。这就是我问的原因。我自己可以找到msdn。在谷歌搜索中不需要帮助。。

C++ cli 在OpenFileDialog中单击“打开”后,如何读取多个文件?

我在代码中设置了一个multiselect函数,允许我打开多个“.txt”格式的文件。问题是,在通过OpenFileDialog打开这些选定文件后,我将如何读取它们?在下面的代码和“for each”行中,当我使用System::Diagnostics::Debug时,它只显示文件中的数据,而其他文件的数据丢失。我应该如何修改“for each”之后的代码?有人能提供一些建议吗?所选文件为1_1.txt、2_1.txt、3_1.txt。感谢您的回复并提前表示感谢 这是我写的代码 Stream^

C++ cli 无法分配给initonly数组的元素?

人们似乎普遍认为C++/CLI的initonly相当于C#的readonly关键字。但是,以下方面: ref class C { C(); void Method(); initonly array<int>^ m_array; }; C::C() { m_array = gcnew array<int>(10); } void C::Method() { m_array[0] = 5; // Fails with C3893

C++ cli 本机指针取消引用的编译器警告C4383

我使用operator*在我的C++/CLI类中遵从指针,编译器会对此操作发出警告: C4383: 'instance_dereference_operator' : the meaning of dereferencing a handle can change, when a user-defined 'operator' operator exists; write the operator as a static function to be explicit about the ope

C++ cli 包括atlbase.h以使用CComBSTR

我有一个.NET库,我正在为它编写一个C++/CLI包装器,以便将公共成员公开给原生世界。其中一个要求是对字符串使用CComBSTR,并完全避免使用std名称空间 为此,我包含了atlbase.h头文件以使用CComBSTR。就包装器或其单元测试而言,一切都运行良好。但是,当我尝试在现有项目中使用包装器头和lib时,我注意到大量编译错误,这些错误都源于不直接属于我正在编译的项目的文件。我在下面发布了其中一些: C:\Program Files (x86)\Microsoft Visual Stu

C++ cli 在头文件中使用指令

我知道不应该在头文件中包含使用名称空间声明,因为它们使项可用于整个项目,这可能会产生不好的结果。但到目前为止,我无法找到头文件中是否允许使用指令的信息。我可以在这个示例中的头文件中使用它吗 这是我的带有函数转发声明的头文件: #using <System.dll> System::Security::Cryptography::X509Certificates::X509Certificate2^ GetCertificate(int Index); 如果我不能,包含X509Ce

C++ cli CLI/C++;如何获得窗口句柄?

我需要另一扇窗户的把手 下面是它的代码: private: System::Void btn_find_Click(System::Object^ sender, System::EventArgs^ e) { array<Process^>^ ps = Process::GetProcessesByName("Notepad"); IntPtr X = ps[0]->MainWindowHandle;

C++ cli 为什么在C+;中手动调用析构函数(通过delete)后不应调用终结器+;CLI < P>后,讲述C++ CLI中析构函数和终结符的区别, 我想知道编译器为什么要添加一些指令。要在析构函数中抑制finalize

finalize函数是否不代表“在finally中,它将由GC调用” 及 我们是否应该在析构函数和终结器中添加相同的“释放资源”代码?当您编写析构函数(C#中的Dispose方法)时,您应该执行清理对象的所有工作。有了一个正确编写的析构函数,终结器就无事可做了,所以编译器会抑制它 在C#中,模式是编写一个Dispose(bool)方法,并让布尔值指示您是在进行Dispose还是在完成。在C++/CLI中,编译器编写该方法,因此不允许使用该方法。我相信如果不想重复代码,您可以从析构函数调用终结器

C++ cli 获取C+中的目录+;。净成本++;CLI

下面是microsoft为Directory::GetDirectory提供的示例,我得到了这段代码: auto k = System::IO::Directory::GetDirectories(installpath); auto dir = k->GetEnumerator(); while (dir->MoveNext()) { String^ subdirectory = safe_cast<String^>(dir->Current

C++ cli 托管代码调用非托管函数

我在c++-cli应用程序的托管代码命名空间中声明了一个结构。项目中还包括非托管的cpp文件。我试图调用一个在Un托管C++代码中定义的函数。我从托管世界将结构传递给它。链接器正在抱怨。上面说 错误27错误LNK2019:未解析的外部符号“int\uu cdecl” N_MMOD(结构DoAT::CAD_CAC_参数*) (?N_MMOD@@$$FYAHPEAUCAD_CAC)_params@DoATR@@@Z) 引用于 函数“public:int\u clrcall DoAT::atrclas

C++ cli c++/cli多线程套接字和窗体

有谁能给我指出正确的方向吗?我似乎在网络上徒劳地循环 private: System::Void loginButton_Click(System::Object^ sender, System::EventArgs^ e) { mLogin* lgn; string text = marshal_as<string>(subjectName->Text); if (lgn->login(

C++ cli 如何在CLR项目中使用睡眠?

我如何在CLR项目中替换以下内容 #include <thread> std::this_thread::sleep_for(std::chrono::milliseconds(60*100)); #包括 std::this_线程::sleep_for(std::chrono::毫秒(60*100)); 或者,在代码中保留度量单位,并注意到问题实际上使用秒(但方式怪异),System::Threading::Thread::Sleep(TimeSpan::FromSeconds(

C++ cli OpenSubKey()只返回注册表中的一个路径。C++;

我正在尝试打开子项HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData 我将其定义为: RegistryKey^ HkeylmPath32 = RegistryKey::OpenBaseKey(RegistryHive::LocalMachine, RegistryView::Registry32); RegistryKey^ Test = HkeylmPath32->Open

C++ cli C++/删除[]时发生CLI堆错误

我似乎在删除char*数组时遇到问题。当调用delete[]时,它由于堆损坏而崩溃: typedef struct _CDB_SYMBOL_INFO { char * name; unsigned long address; unsigned long value; } CDB_SYMBOL_INFO; // ... for each( Symbol ^ symbol in bls->Symbols ) {

C++ cli 中缀到后缀的转换

我正在尝试将中缀表达式转换为后缀表达式的代码。目前,该程序工作正常,如果我输入例如5+6,它将输出正确答案,即5+6+。当我为例如5+6-3输入多个运算符时,会出现问题,它会输出错误的答案+3-。有人能指出我在哪里出错吗?提前谢谢 void main(){ Stack *s = new Stack; string input; cout <<"Enter Expression"<<endl; cin>>input; InfixToPostfix(inp

C++ cli 托管C+中的自动或共享ptr等效项+/CLI类

在C++/CLI中,您可以在托管类中使用本机类型,因为不允许在托管类中保留本机类的成员:在这种情况下,您需要使用指针 以下是一个例子: class NativeClass { .... }; public ref class ManagedClass { private: NativeClass mNativeClass; // Not allowed ! NativeClass * mNativeClass; // OK auto_ptr<NativeClass>

C++ cli 将void*封送到数组<;字节>^

我希望在C++/CLI中为MemoryStream编写一个void*缓冲区。由于我认为这不可能直接实现,或者我想将此缓冲区转换为数组^,以便能够调用Stream.Write()。我已经查看了封送处理,但是在将void*转换为System::IntPtr时遇到了问题。感谢您的帮助 我无法将void*转换为System::IntPtr。感谢您的帮助 您可以使用: 哦,我从来没想到会这么简单。谢谢!而且速度也很快! void* voidPointer = GetTheVoidPointer(); Sy

C++ cli 指向C+中数据成员的指针+/CLI

如何在C++/CLI中创建指向数据成员的指针 比如说 ref class team { List<teamMember^> members; teamMember^ leader; //the aim is to make it a pointer to an element in the list void changeLeader(teamMember^% member) //member is an element from members {

C++ cli C++/CLI可选参数

为什么我不能为托管类型的成员函数或泛型函数声明默认参数C#4.0引入;对于CLI,也有类似的情况 我不明白为什么不能声明这样的方法: void Optional(int argument = 0); 然后当我调用Optional()时编译器不会将此调用转换为:可选(0)看起来C++/CLI编译器没有为此发出正确的IL指令。它不发出指令.param[1]=int32(0),C#使用该指令识别默认参数。如果在ILDasm中打开生成的程序集,您将看到它 编译的一种方法是使用System::Runti

C++ cli 正在将系统::IO::FileStream^转换为文件* 我正在把大量的代码从非托管C++程序集重构成C语言程序集。目前在这两者之间存在一个混合模式程序集,当然是托管代码和非托管代码的混合。我试图调用一个依赖于文件*s的非托管C++(如STDIO。这个函数连接到一个更大的进程中,这个进程还不能重构成C代码,但是现在需要从托管代码中调用它

我已经搜索了system::IO::FileStream类使用的底层系统指针的类型,但找不到确切的答案。这只是应用于文件*的顶部吗?或者是否有其他方法将FileStream^转换为文件*?我找到了FileStream::SafeFileHandle,我可以在上面调用DangerousGetHandle().ToPointer()来获取本机void*,但我只是想确定,如果我将其转换为FILE*,我做的是正确的 void Write(FILE *out) { Data->Write(o

C++ cli C++/CLI方法调用本机方法来修改int-是否需要pin_ptr?

我有一个C++/CLI方法,ManagedMethod,其中一个输出参数将由本机方法修改,如下所示: // file: test.cpp #pragma unmanaged void NativeMethod(int& n) { n = 123; } #pragma managed void ManagedMethod([System::Runtime::InteropServices::Out] int% n) { pin_ptr<int> pinned =

C++ cli 是否需要AssemblyInfo.cpp?

我想删除AssemblyInfo.cpp,因为有时会出现一些元数据错误 AssemblyInfo.cpp对什么有用吗?或者可以毫无问题地删除它吗?为什么不修复错误呢?那么,你会犯什么错误呢 此文件提供了一个信息,如使用所构建的程序集所需的版本号。 到目前为止,我在托管C++中没有使用汇编语言。 (我刚刚添加了文件,以有我的C++ DLL的版本信息)。 < P>我发现了这个文件的一个区别:它与调用到的值有关。我正在努力通过将修订号嵌入到SVN存储库中来跟踪二进制文件的版本号。最初我也在更新Asse

C++ cli 如何从IMyInterface实现我的类<;T>;?

我想将以下代码从c#移植到c++/cli: class MyClass : IEnumerable<int> { ... } class MyClass:IEnumerable{…} 我试过了 class ref class MyClass : IEnumerable<int> 类引用类MyClass:IEnumerable 但是它似乎不起作用。C++有多种类型的继承。不要忘记指定它,例如: ref class MyClass : public IEnumerab

C++ cli 类库-静态库-链接器问题LNK4221

我正在使用VS2008类库模板和/clr。 我想要一个托管类库。 当我把库编译成dll时,一切都很好 头文件:multiclasses.h #pragma once namespace multiclasses { public ref class Class1 { public: int a, b; private: int c, d; public: int add(int a, int b); private: int hadd(int a

C++ cli 如何在程序运行的do while循环中设置条件

我面临着这个问题,我试图解决它,但我无法满足我需要你的帮助。。这是我的代码: #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { y=Convert::ToInt16(textBox1->Text); c=Convert::ToInt16(textBox3->Text); a=Convert::ToDoub

C++ cli 没有能够捕获托管变量的lambda的解决方法

在C++/CLI中,无法创建托管lambda(就像在C#中一样),因此无法捕获托管变量。您可以创建常规方法(而不是lambda),但仍然无法捕获托管变量 在C++/CLI代码中是否有标准的变通方法?换句话说,我正在寻找一种标准模式,可以在C++/CLI中使用它从C#执行以下操作: class A{} B类 { void Foo() { A=新的A(); Func 如果你看一个C#lambda的反编译,你会发现C#编译器做的事情和你的选项2一样。创建一堆单用途类很烦人,但这是我的建议 对于C#l

C++ cli C++/CLI Open XML SDK Excel无法使用AddNewPart

我正在为一个学校项目使用C++/CLI,我需要将一些数据导出为Excel格式(xlsx)。问题是,此代码包含的部分(如AddNewPart)在Visual Studio中以红色下划线(它表示指定的类没有成员AddNewPart),但代码已编译且应用程序已运行,但结果是xlsx文件已损坏(当我尝试用excel打开它时,它表示已损坏) SpreadsheetDocument^doc=SpreadsheetDocument::Create(路径,SpreadsheetDocumentType::工作簿

C++ cli C++/CLI按钮更改文本框中选定文本的字体样式

目标:制作一个按钮,用于更改选定文本的字体样式。 我现在拥有的:带有按钮和文本框的表单 private: System::Void Button2_Click(System::Object^ sender, System::EventArgs^ e) { if (textBox1->SelectionLength > 0) { textBox1->SelectedText->FontStyle = } } 我试图在微软的网站上

C++ cli 从C+实现在C#中声明的接口+/CLI

假设我有一个名为IMyInterface的C#接口,定义如下: // C# code public interface IMyInterface { void Foo(string value); string MyProperty { get; } } // C++/CLI header file ref class MyConcreteClass : IMyInterface { public: }; 假设我还有一个C++/CLI类,MyConcreteClass,它实现了这个

C++ cli 原生C++;vs C++/CLI速度 我有一个关于C++和CLI与本地C++速度的问题。我已经编写了一个小的测试应用程序,我看到了非常令人惊讶的结果

似乎非托管C++/CLI代码的速度要慢得多。基本上我创建了两个控制台应用程序。一个是标准win32控制台应用程序,另一个是CLR控制台应用程序 这是我为测试编写的代码。我在所有版本的测试中都保持代码完全相同 const int NumberOfTests = 10000000; void GrowBalance(int numberOfYears) { std::cout<<"Called"<<std::endl; DWORD startTime = GetTick

C++ cli C++/CLI问题:是否有与C“相当的;是";关键字还是我必须使用反射?

我在MSDN上的某个地方读到,与C#的“is”关键字等效的是dynamic#u cast,但这并不是真正等效的:它不适用于值类型或泛型参数。例如,在C#中,我可以写: void MyGenericFunction<T>() { object x = ... if (x is T) ...; } 有一种更简单的方法吗?< p>可以使用安全性> /Cuff>在本地C++中使用 DyrimeCase> ,并捕获Stase::ValueStudio异常。就兼

C++ cli VS C++;调用请求/委托无效的问题 我是C++新手,IM使用VS2010。 有人可以检查下面的代码并帮助解决它吗?每次函数UpdateDataGrid(unsigned char CANPacket[15]) 调用时,将在新窗口中显示以下消息,并且应用程序将关闭 An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll Additional information: Object of type 'System.Byte' cannot be converted to type 'System.Byte*'.

我必须在这个项目中使用unsinged char数据类型,而不是String^。 有没有办法更正我的代码 //Piece of my code namespace VCCDC { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace S

C++ cli 如何从常量泛型对象复制?

我正在开发一个通用的循环缓冲区,但在复制构造函数方面遇到了一个障碍(请参见下面的代码示例) 使用名称空间系统; ///一种通用循环缓冲区,具有固定大小的内部缓冲区,允许调用者将数据推送到缓冲区,再次弹出数据并提供对任何元素的直接索引访问。 通用的 公共参考类循环缓冲 { 受保护的: 数组^m_buffer;///用于存储数据的内部缓冲区。 unsigned int m_resultsInBuffer;///一个计数器,记录缓冲区中当前保存的结果数 T m_nullValue;///用于表示缓冲区

C++ cli 如何在托管指针数组c++/cli?

我是托管代码新手,我需要使用C++/CLI将指向不同结构的指针数组传递到windows窗体,但它不起作用 我的问题是在托管阵列中,如何正确访问其元素 代码顺序: array<void*> ^ ptr;//here ptr value is undefined , type array<void*> ^ ptr = gcnew array<void*> (2);// length 0x2 , 0x0 and 0x1 values are undefined of

C++ cli 在C+中使用结构+/CLI

我有以下代码 ref class A { typedef ref struct All { std::string x; }All_t; }; 在我的程序中,我以以下方式使用它 A::All_t t; t.X = "H"; 此声明将错误抛出为 error C4368: cannot define 'x' as a member of managed 'A::All': mixed types are not supported 我知道我在托管代码中声明了本机变量,这是不允许的,但现在

C++ cli 为什么gcroot返回系统^?

我有以下代码: Internal::ManagedInputData ^getManagedInputData() const { return mInputData; } private: gcroot<Internal::ManagedInputData^> mInputData; 如果我把getter注释掉,错误就会消失 好几个小时我都想不出是什么问题,请有人帮忙。以下代码编译时没有任何错误: #include <gcroot.h> namespace

C++ cli 如何编写正确的析构函数和终结器?

我试图弄清楚如何在C++/CLI中正确清理对象 我已经阅读或略读了这两篇文章(,),并且看了又看了一些其他问题 我有各种各样的信息: 终结器应该清理非托管资源(这样当对象被垃圾收集时,所有东西都会被清理) 析构函数应该清理托管资源(删除Foo或Foo.Dispose()?)并调用终结器(根据) 析构函数和终结器都可以多次调用(参见第26页8.8.8的末尾) 如果析构函数被调用,终结器将不再被调用(根据)(不是由CLR调用,也就是说,您仍然可以自己调用它) 析构函数将调用基类析构函数(参见第25页

C++ cli 使用C++/CLI拆分带有多个分隔符的System::String^

我是C++/CLI新手,正在尝试使用多个分隔符拆分System::String^ System::String^ = 65 kb (65,546 bytes) Split System::String^ = 65546 我发现这段代码非常棒,但它只适用于std::string,不允许我转换System::string^ 有什么想法吗?您使用的是.NET类System.String。您需要一个.NET答案:有用吗? std::string s = "65 kb (67,873 bytes)";

C++ cli 只能创建托管类的句柄。为什么? 我是Visual C++初学者,目前只是学习它的概念。

我知道有两个类:管理类和价值类 值类就像普通C++类,其对象可以被创建来保存数据。 托管类是由垃圾收集器管理的内存。 问题: 无法创建托管类的对象,只能创建句柄。为什么会这样? 请给我一个简单的例子?这只是一个对象创建还是其他什么? 这并不是说您只为托管类创建句柄,托管类的实例或对象是在托管堆上创建的,并且您被赋予了访问该实例的句柄 完整的答案是一个维基条目,但我会尝试让你了解这里的问题是什么 托管类和值类是C++/CLI.Net类型的类。与C和.Net相关的参考文档在这里仍然有效,可能会回答一

C++ cli 如何保存字节偏移量并使用stream::seek或stream::position

我有一个程序,它逐行遍历一个输入文件,将其显示在windows窗体上,然后是一个操作按钮,将结果发布到输出文件 我希望能够使用stream::seek,所以当我关闭应用程序并返回到它时,它会转到我打开的输入的最后一行,这样我就不必每次都从一开始就开始 这是我当前的代码: static System::IO::StreamReader ^fileName = nullptr; public: System::Void StartBtn_Click(System::Object^

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 23 页