我想样式地图区域图像的替代文字颜色 - > alt ="维多利亚的秘密"默认为蓝色,但我想要红色!我尝试了一些没有成功的方法......有什么帮助吗?
这是我的代码:
<map name="Map" id="Map">
<area shape="rect" coords="22,4,126,50" href="http://www.victoriassecret.com/" target="_blank" alt="Victoria's Secret"/>
Run Code Online (Sandbox Code Playgroud) 我正在使用以下方法来创建反转位图:
HBITMAP CreateMirroredBitmap( HBITMAP hbmOrig)
{
HDC hdc, hdcMem1, hdcMem2;
HBITMAP hbm = NULL, hOld_bm1, hOld_bm2;
BITMAP bm;
if (!hbmOrig)
return NULL;
if (!GetObject(hbmOrig, sizeof(BITMAP), &bm))
return NULL;
// Grab the screen DC.
hdc = GetDC(NULL);
if (hdc)
{
hdcMem1 = CreateCompatibleDC(hdc);
if (!hdcMem1)
{
ReleaseDC(NULL, hdc);
return NULL;
}
hdcMem2 = CreateCompatibleDC(hdc);
if (!hdcMem2)
{
DeleteDC(hdcMem1);
ReleaseDC(NULL, hdc);
return NULL;
}
hbm = CreateCompatibleBitmap(hdc, bm.bmWidth, bm.bmHeight);
if (!hbm)
{
ReleaseDC(NULL, hdc);
DeleteDC(hdcMem1);
DeleteDC(hdcMem2);
return NULL;
}
// Flip the …Run Code Online (Sandbox Code Playgroud) 我写了这样的代码:
void Print(const int & dataArray[], const int & arraySize) { // problem
for(int i = 0; i<arraySize; i++) {
cout << dataArray[i] << " ";
}
cout << endl;
}
Run Code Online (Sandbox Code Playgroud)
在mian()函数中:
`
int iArray[14] = { 7, 3, 32, 2, 55, 34, 6, 13, 29, 22, 11, 9, 1, 5 };
int numArrays = 14;
Print(iArray, numArrays);
....
`
Run Code Online (Sandbox Code Playgroud)
编译器说引用数组是非法的,为什么它是非法的?我看到<effective c ++>,它说建议我们使用const和reference,我只是尝试实现它(我是初学者),我也想知道void Print(const int dataArray[], const int & arraySize)参数我用const,&来限定arraySize,是不是?(或者它比int arraySize或const int arraySize好多了?),我也想使用const,&to dataArray [],但是我失败了.
好的,所以我创建了一个创建HWND的类.
但是,创建的窗口显示了一些奇怪的属性:它不像其他窗口 - 它是不透明的,close-minimize-maximize按钮的位置与普通窗口不同.
但指定的样式是默认值(WM_OVERLAPPEDWINDOW).
更重要的是,它不能被关闭,除非我稍微移动它(似乎它在移动之前没有生成WM_DESTROY或WM_CLOSE消息).
这可能是主WinProc的实现使用指针调用另一个消息处理器的问题.但是,我不知道为什么窗户看起来异常.
更新:在WM_NCCREATE处理程序上设置HWND时,窗口正常显示.
无法关闭窗口的问题可以通过向类添加close变量并在生成WM_CLOSE或WM_DESTROY的消息时将其值设置为false来解决.
似乎正在生成消息WM_CLOSE,但PostQuitMessage(0)不会破坏mHwnd,除非窗口被移动.
因此,最好的选择是使用该变量手动转义消息循环.
我已经使用解决方案添加了代码更新.
我的代码:
//mywind.h
class Window
{
private:
HWND mHwnd;
const char* className="Window";
static LRESULT CALLBACK StartWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); //main WindowProc function
LRESULT ThisWindowProc(UINT msg, WPARAM wParam, LPARAM lParam); //Another, object-specific message processing function
bool isClassRegistered(HINSTANCE hinst);
public:
Window() : mHwnd( 0 ) { }
~Window();
int create(std::string title, int width, int height);
};
//mywind.cpp
Window::~Window()
{
if( mHwnd ) DestroyWindow( mHwnd );
}
int …Run Code Online (Sandbox Code Playgroud) 我有一个文件"injectdll.h",代码:
#include <windows.h>
#include <tlhelp32.h>
void GetTargetThreadIdFromProcname(char *procName);
bool LoadDll(char *procName, char *dllName);
Run Code Online (Sandbox Code Playgroud)
和一个文件"injectdll.cpp",代码如下:
#include "StdAfx.h"
#include "injectdll.h"
void GetTargetThreadIdFromProcname(char *procName)
{
}
bool LoadDll(char *procName, char *dllName)
{
GetTargetThreadIdFromProcName(procName);
}
Run Code Online (Sandbox Code Playgroud)
我无法编译那么简单的代码:
错误C3861:"GetTargetThreadIdFromProcName":Bezeichner wurde nicht gefunden./'identifier':找不到标识符,即使是依赖于参数的查找
哪里出错?这让我疯狂...
我正在关注Iczelion的Win32教程,特别是教程3("简单窗口"),当试图为了实验而"剥离"一些错误处理和不必要的代码时,我在编译时遇到以下错误:
test.asm(38) : error A2111: conflicting parameter definition.
Run Code Online (Sandbox Code Playgroud)
这是一行:
第38行:
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdShow:DWORD
Run Code Online (Sandbox Code Playgroud)
我的问题是:这行代码有什么问题?
提前致谢.
编辑:
这是整个脚本,其中有违规行注释:
.386
.model flat, stdcall
option casemap :none
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
.data
ClassName db "Testwin", 0
AppName db "Testing Window", 0
.data?
hInstance HINSTANCE ?
.code
start:
push NULL
call GetModuleHandle
mov hInstance,eax
push SW_SHOWDEFAULT
push NULL
push hInstance
call WinMain
push eax
call ExitProcess
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdShow:DWORD ; this …Run Code Online (Sandbox Code Playgroud) 我想通过xValue和yValue确定一个角度,但如果xValue为零,我就无法工作.那个案子我该怎么办?
Math.atan(yValue/xValue);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Windows文件映射创建一个简单的客户端 - 服务器程序,并使用信号量.客户端向服务器发送2个号码,服务器计算nr1 + nr2和nr1*nr2.我尝试了一些东西,但它甚至不适用于1个客户端,我希望它能为更多客户工作.这是代码:
服务器:
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
typedef struct {
int nr1;
int nr2;
} Mesaj;
int main(int argc, char** argv) {
Mesaj* mesaj;
HANDLE createSemaphore = CreateSemaphore(NULL, 1, 1, "Semafor");
if (createSemaphore == NULL || createSemaphore == INVALID_HANDLE_VALUE) {
wcout << "Failed to create a semaphore\n";
} else {
wcout << "Created the semaphore\n";
}
HANDLE hMemory = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
PAGE_READWRITE, 0, sizeof(Mesaj), "SharedMemory");
WaitForSingleObject(createSemaphore, INFINITE);
mesaj = (Mesaj*) MapViewOfFile(hMemory, FILE_MAP_READ, …Run Code Online (Sandbox Code Playgroud) 首先要说我是西班牙语,我的英语非常糟糕,我使用了一名翻译,因为我看起来像个文盲而道歉:)
我已经多年没有玩c ++而且我已经忘记了很多,以至于我可能怀疑或者可能的失败是语言中的基本内容.
我编写了一个小代码来测试c ++中带有虚拟析构函数的delete运算符的开销,我发现只有在第一次调用delete时它才能正常工作.
代码就在这里(这是一个允许你在线编写代码并执行代码的页面,我在visual studio和gcc中进行了测试,它完全相同):https://onlinegdb.com/SkiI1dNDQ
有人能告诉我为什么会这样吗?只有第一次运作良好,第二次运行不顺利
我也把代码放在这里,结果给出了:
#include <stdio.h>
class Base
{
public:
virtual ~Base() { printf("~Base\r\n"); }
void operator delete(void *m) { printf("delete Base\r\n"); }
};
class Derived : public Base
{
public:
Derived() { x = 1; }
~Derived() { printf("~Derived\r\n"); }
void operator delete(void *m) { printf("delete Derived\r\n"); }
int x;
};
int main()
{
Derived *derived = new Derived();
printf("1) delete derived (%i)\r\n", ((Derived*)derived)->x);
delete derived;
printf("2) delete derived (%i)\r\n", ((Derived*)derived)->x); …Run Code Online (Sandbox Code Playgroud) c++ ×6
windows ×4
visual-c++ ×2
alt ×1
assembly ×1
file-mapping ×1
html ×1
javascript ×1
masm32 ×1
math ×1
pointers ×1
text ×1
virtual ×1
winapi ×1
x86 ×1