C ++ GUI - “Marshal”:不是类或命名空间名称

时间:2013-10-31 04:31:12

标签: c++ user-interface marshalling

非常感谢任何和所有帮助。感谢您抽出时间审核我的问题。

我目前收到错误

 1>c:\users\fordn_000\documents\tcc_odu\it310\programs\it310_homework_program_2_nford\it310_homework_program_2_nford\Form1.h(625): error C2653: 'Marshal' : is not a class or namespace name
 1>c:\users\fordn_000\documents\tcc_odu\it 310\programs\it310_homework_program_2_nford\it310_homework_program_2_nford\Form1.h(625): error C3861: 'StringToHGlobalAnsi': identifier not found

这是我的GUI表单代码,但我想使用命令marshal,它出现在发生错误的地方

    private: System::Void DisplayButton_Click(System::Object^  sender, System::EventArgs^  e) 
     {
         int InitProductID = 0;
         char* InitDescription;
         int InitManufID = 0;
         double InitWholeSale = 0.0;
         double InitMarkup = 0.0;
         int InitQuanity = 0;

         String^ TypeString;

         //EXTRACT FROM INPUT TEXT BOX'S
         InitProductID = Convert::ToInt32(ProductIDNumberBoxNew->Text);
         InitDescription = (char*)(void*)Marshal::StringToHGlobalAnsi(DescriptionBox->Text);
         InitManufID = Convert::ToInt32(ManufacturerBox->Text);
         InitWholeSale = Convert::ToDouble(WholesalePriceBox->Text);
         InitMarkup = Convert::ToDouble(MarkupBox->Text);
         InitQuanity = Convert::ToInt32(QuantityBox->Text);

         //CREATE INSTANCE OF CLASS
         Inventory InventoryItem(InitProductID, InitDescription, InitManufID, InitWholeSale, InitMarkup, InitQuanity);

         //DISPLAY TO OUTPUT TEXT BOXS
         ProductIDNumberOutBox->Text = Convert::ToString(InventoryItem.GetProductID());
         TypeString=gcnew String(InventoryItem.GetDescription());
         ManufacturerOutBox->Text = Convert::ToString(InventoryItem.GetManufID());
         //RETAIL PRICE OUTBOX
         QuantityOutBox->Text= Convert::ToString(InventoryItem.GetQuanity());


     }

这是我的stdafx头文件

 #pragma once

 // TODO: reference additional headers your program requires here
 #include "Inventory.h"

这是我的stdafx cpp文件

#include "stdafx.h"
#include "Form1.h"

最后这是我的广告资源标题文件

//SPECIFICATION FILE (INVENTORY.H)
#ifndef INVENTORY_H
#define INVENTORY_H

#include <iostream>
#include <iomanip>

  using namespace std;

 class Inventory 
 {
 private:
int ProductID;
mutable char Description[25];
int ManufID;
double WholeSale;
double Markup;
int Quanity; 

public:
//CONSTRUCTORS
Inventory( );
Inventory(int, char[], int, double, double, int);

//GET FUNCTIONS
int GetProductID( )const;
char* GetDescription( )const;
int GetManufID( )const;
double GetWholeSale( )const;
double GetMarkup( )const;
int GetQuanity( )const;

//DISPLAY FUNCTION
void Display( )const;

//RETURN FUNCTION
double RetailPrice( )const;

};
#endif

1 个答案:

答案 0 :(得分:2)

我认为你需要参考:

using namespace System::Runtime::InteropServices;