在C#中,我们有一个数据类型对象,可以容纳任何类型的数据.我希望在VC++中实现同样的目标.任何人都可以让我知道VC++相当于"C#的对象".
IN C#,在调用appl程序中(比如call.cs)
object ob=null;
ob=(object)str;
funct(ref ob);
Run Code Online (Sandbox Code Playgroud)
这里str是空字符串.
我希望在VC++中实现这一点.所以我需要创建VC++等价的对象.我确定我们需要使用指针作为ref的等价物?
嗨,我是VSilin中的一个C++解决方案.
ostringstream strout;
Run Code Online (Sandbox Code Playgroud)
我收到编译错误" 错误C2065:'ostringstream':未声明的标识符 ".
我觉得我已经包含了所有必要的头文件.
任何人都可以让我知道如何修复此错误(包括什么所有头文件)?
此外,我收到一个奇怪的错误,如"错误C2146:语法错误:缺少';' 在标识符"strout"之前,在同一行.
虽然我知道我没有错过";" 分叉@在抛出错误的行.
提前致谢.
GUID是MSFT生成的128位唯一标识符.
我怀疑GUID是否是全球唯一的.我的意思是我生成的GUID,在任何系统中使用任何应用程序的人都没有其他人可以生成?真的吗?
我很惊讶微软如何知道或追踪这种独特性.
而且生成的uniquie GUID可以链接到任何实体吗?应用,变量,系统,?
GUOD所有实体可以链接到什么?任何人都可以澄清GUID的概念吗?编程语言是独立的吗?
在下面的C++片段中,a = b可能是分配??:
unsigned int * a;
D3DCOLOR b[16];
a=(unsigned int)b;
Run Code Online (Sandbox Code Playgroud)
这个赋值会将b数组的所有元素复制到一个?类型是否合适?
如果我想创建一个D3D表面,我会像下面这样做.同样,如果我想创建一个IDirect3DSurface9类型的D3D表面数组*我该怎么做C++?
IDirect3DSurface9** ppdxsurface = NULL;
IDirect3DDevice9 * pdxDevice = getdevice(); // getdevice is a custom function which gives me //the d3d device.
pdxDevice->CreateOffscreenPlainSurface(720,480,
D3DFMT_A8R8G8B8,
D3DPOOL_DEFAULT,
pdxsurface,
NULL);
Run Code Online (Sandbox Code Playgroud)
QUERY ::如何在C++中创建D3D设备数组?
在下面的C ++代码段中,
如何根据TwoInts结构中的元素“ int a”对向量“ TwoIntsVec”进行排序。即我需要将“ TwoIntsVec [i] .a”最少的“ TwoIntsVec [i]”放在第一位,依此类推,以“ TwoIntsVec [i] .a”的升序排列。
在下面的示例中,应将具有7,3的矢量元素结构放在第一位,因为7是最小的“ a”,依此类推。
struct TwoInts
{
int a;
int b;
};
void PushToVector(int a, int b, std::vector<TwoInts>& TwoIntsVec)
{
TwoInts temp;
temp.a = a;
temp.b = b;
TwoIntsVec.push_back(temp);
}
int main()
{
std::vector<TwoInts> TwoIntsVec;
PushToVector(21,3,TwoIntsVec);
PushToVector(7,3,TwoIntsVec);
PushToVector(12,3,TwoIntsVec);
PushToVector(9,3,TwoIntsVec);
PushToVector(16,3,TwoIntsVec);
// Below sort would NOT work here, as TwoIntsVec is
// not a std::vector<int>
std::sort( TwoIntsVec.begin(), TwoIntsVec.end());
// HOW TO MAKE THE SORT BASED ON the …Run Code Online (Sandbox Code Playgroud) FILE * in;
in = fopen("file1.bmp", "rb");
if (in == NULL) {
perror("file1.bmp");
return ;
}
Run Code Online (Sandbox Code Playgroud)
为什么我无法打开*.bmp文件.fopen()返回NULL.
任何人都可以帮助我如何成功打开BMP文件.我应该使用其他一些C++函数.如果是的话,请告诉我.一个例子非常有用.我在VS2008中使用VC++.
提前致谢.
就像this指针用于将指针传递给当前对象一样,如何传递对当前对象的引用?
class UseMe
{
public:
UseMe_funcReference(base&);
UseMe_FuncPointer(base *)
}
class base{
..........
}
class Abc:public base
{
public:
friend UseMe;
UseMe innerObj;
Func1()
{
(this->innerObj).UseMe_funcPointer(this); // This passes pointer to current object
(this->innerObj).UseMe_funcReference(HOW_TO_PASS_REFERENCE_TO_CURRENT_OBJECT);
}
}
Run Code Online (Sandbox Code Playgroud) 我想,以取代所有出现&在我std::string与&。这是代码段代码
链接
#include <algorithm>
#include <string>
#include <iostream>
int main()
{
std::string st = "hello guys how are you & so good & that &";
std::replace(st.begin(), st.end(), "&", "&");
std::cout << "str is" << st;
return 1;
}
Run Code Online (Sandbox Code Playgroud)
它显示了std :: replace无法替换字符串的错误,但仅适用于字符。 我知道我仍然有逻辑可以完成我的工作,但是有什么干净的C ++方式可以做到这一点吗?有内置功能吗?
void * ptr0 = (void*)"Buffer_1";
int size0 = sizeof(ptr0);
// WILL THIS RETURN THE NUMBER OF BYTES OCCUPIED BY THE MEMORY POINTED BY ptr0?
Run Code Online (Sandbox Code Playgroud)
我的要求是
1)在缓冲区中存储一些数据并创建一个void*指针,我在第一行做.
2)后来我想在BYTES中获得这个缓冲区的大小.第二行将完成这项工作.
我收到了以字符串格式收到的JSON数据.
std::string jsonStr = GetJsonStringBuffer();
Run Code Online (Sandbox Code Playgroud)
//它可能会像这样存储在jsonStr中:
jsonStr = " {"Key1":"val1","key2":"val2","key3":"val3"} " ;
BUT JSON字符串本身有双引号(").所以当GetJsonStringBuffer()返回一个C++ std :: string存储时jsonStr.它不会产生问题,因为带有json数据的双引号(")可能被视为字符串分隔符C++ std :: string.
如何处理这种情况.我是否以编程方式为json字符串中的每个双引号添加"\"(反斜杠),我认为这不是一个很好的解决方案.有没有更好的C++解决方案呢?