我想在Windows文件中嵌入一些元数据.
我遇到了扩展文件属性的概念,我认为这是用于此目的.例如,jpgs中的摄像机名称,avis中的剧集名称.
除了一些非常模糊的非文档内核API,我无法使用win32 api在c/c ++中找到如何做到这一点.
有没有人这样做过?
提前致谢.
我有一个long阵列.如何将此数组写入二进制文件?问题是,如果我将其转换为byte数组,则会更改某些值.
数组如下:
long array = new long[160000];
Run Code Online (Sandbox Code Playgroud)
提供一些代码段.
我正在制作一个随机数生成器,程序将创建几个随机数,然后从这些随机数中选择,然后在窗口中显示该数字.
我想知道是否有办法让那段特定的文字更大?我不想改变窗口中所有文本的大小,因为我在窗口中写道,我不想改变大小
谢谢你提供的所有帮助
我有一个在大多数情况下需要线程的应用程序.大多数情况下,我会遇到错误或错误的值,因为对象在每个线程执行之前都已更新.
您是否有任何建议如何使对象是线程安全的并确保对象具有正确的每个线程?我应该制作我的变量static吗?
代码段:
void RunThread(void* unused_args)
{
PSECURITY_DESCRIPTOR sdsc;
ULONG size;
ConvertStringSecurityDescriptorToSecurityDescriptor("S:(ML;;NW;;;LW)", SDDL_REVISION_1, &sdsc, &size);
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.bInheritHandle = false;
sa.lpSecurityDescriptor = sdsc;
HANDLE pipe = CreateNamedPipe("\\.\pipe\mmaivpc_test_pipe", PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE, 255, 1024, 1024, 0, &sa);
DWORD error = GetLastError();
}
Run Code Online (Sandbox Code Playgroud)
如果你还没有从函数名中找到它,那么这个函数就会被调用_beginthread. GetLastError()正在回归ERROR_INVALID_NAME,我无法弄清楚为什么.
int i=0;
int *p = &i;
std::cout<<sizeof(i)<<" vs "<<sizeof(p)<<"\n";
char c='0';
char*pc = &c;
std::cout<<sizeof(c)<<" vs "<<sizeof(pc)<<"\n";
double d=0.123456789;
double *pd = &d;
std::cout<<sizeof(d)<<" vs "<<sizeof(pd)<<"\n";
Run Code Online (Sandbox Code Playgroud)
为什么指针的大小总是等于4的整数?
如何从对象中获取STL容器的类型?例如,我有一个container变量,我知道它是std::vector<some type>.我需要使用迭代器迭代容器.有没有办法在不知道容器类型的情况下声明迭代器?
我当然可以从代码中获取类型,但我很乐意在不使用类型的情况下完成它.我也不是在使用C++ 11.
我正在尝试打开"mspaint"并在初始化之后立即找到它的句柄.但FindWindow回报NULL,如果我打电话WaitForInputIdle.如果我尝试使用Sleep(1000)它的功能.但我不认为这是等待程序准备就绪的正确方法.这个代码有解决方案吗?
CString strWindowDirectory;
GetSystemDirectory(strWindowDirectory.GetBuffer(MAX_PATH), MAX_PATH);
SHELLEXECUTEINFO sei = { 0 };
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = L"open";
sei.lpFile = L"mspaint";
sei.lpDirectory = strWindowDirectory;
sei.nShow = SW_SHOWNORMAL;
HWND hPaint = NULL;
if(ShellExecuteEx(&sei))
{
int r = ::WaitForInputIdle(sei.hProcess, INFINITE);
ATLTRACE(L"WaitForInputIdle %d\n", r);
if (sei.hProcess == NULL) return;
hPaint = ::FindWindow(L"MSPaintApp", NULL);
ATLTRACE(L"Handle %d\n", hPaint);
if (!hPaint) return;
}
else
{
MessageBox(L"Couldn't find mspaint program");
return;
}
Run Code Online (Sandbox Code Playgroud) 当我使用C++程序时,我需要Turbo C编译器;当我有一个Java程序时,我需要有JVM。C++ 仍然不是平台无关的,但 Java 是!如果任何 Java 程序都需要运行 JVM 才能执行,为什么 Java 被称为平台无关的呢?