小编Kev*_*ose的帖子

QueryFullProcessImageName失败并带有有效的HINSTANCE?

//window is an HWND
LPWSTR path = new WCHAR[1024];
DWORD  size = 1024;

GetWindowText(window, path, 1024);

HINSTANCE instance = (HINSTANCE)GetWindowLongPtr(window, GWLP_HINSTANCE);

QueryFullProcessImageName(instance, PROCESS_NAME_NATIVE, path, &size);
Run Code Online (Sandbox Code Playgroud)

调用QueryFullProcessImageName(...)时,此代码失败,错误代码为6 [无效句柄].GetWindowText成功,GetWindowLong返回非零HINSTANCE.

我对win32很新,所以为什么这不起作用超出了我.我相信所涉及的HWND和HINSTANCE都是有效的......

谢谢

c winapi

2
推荐指数
1
解决办法
3517
查看次数

开始C++问题; 无法实例化抽象类(VS中的C2259)

我正在尝试创建IAudioEvents COM接口的具体实例(在Vista及更高版本中可用).这是我第一次涉足COM编程,所以我可能只是在做一些愚蠢的事情.无论如何,以下代码无法使用"C2259:'AudioEndpointVolumeNotifierImpl'进行编译:无法实例化抽象类".

Class Definiton(AudioEndpointVolumeNotifierImpl.h):

class AudioEndpointVolumeNotifierImpl : public IAudioSessionEvents
{
private:
    LONG _cRef;

public:
    AudioEndpointVolumeNotifierImpl() : _cRef(1){}
    ~AudioEndpointVolumeNotifierImpl(){}
    HRESULT STDMETHODCALLTYPE OnSimpleVolumeChanged(float NewVolume, BOOL NewMute,LPCGUID EventContext);

    HRESULT STDMETHODCALLTYPE OnChannelVolumeChanged(DWORD ChannelCount, float NewChannelVolumeArray[], DWORD ChangedChannel, LPCGUID EventContext){return S_OK;}
    HRESULT STDMETHODCALLTYPE OnDisplayNameChanged(LPCWSTR NewDisplayName, LPCGUID EventContext){return S_OK;}
    HRESULT STDMETHODCALLTYPE OnGroupingParamChanged(LPCGUID NewGroupingParam, LPCGUID EventContext){return S_OK;}
    HRESULT STDMETHODCALLTYPE OnIconPathChanged(LPWCHAR NewIconPath, LPCGUID EventContext){return S_OK;}
    HRESULT STDMETHODCALLTYPE OnSessionDisconnected(AudioSessionDisconnectReason DisconnectReason){return S_OK;}
    HRESULT STDMETHODCALLTYPE OnStateChanged(AudioSessionState NewState){ return S_OK; }

    ULONG STDMETHODCALLTYPE AddRef()
    {
        return InterlockedIncrement(&_cRef);
    }

    ULONG STDMETHODCALLTYPE Release()
    { …
Run Code Online (Sandbox Code Playgroud)

c++ windows com

2
推荐指数
2
解决办法
8502
查看次数

为什么答案打印两次?

我做了一个程序,返回产品a b c,其中a,b,c是毕达哥拉斯三元组,加起来为1000.程序确实输出了正确的答案但是两次.我很好奇为什么会这样.稍微玩了一下之后,我发现当a = 200 b = 375 c = 425时打印出来.再次当a = 375 b = 200 c = 425时.

bool isPythagTriple(int a, int b, int c);

int main()
{

    for(int a = 1; a < 1000; a++)
    {
        for(int b = 1; b < 1000; b++)
        {
            for(int c = 1; c < 1000; c++)
            {
                if( ((a+b+c)==1000) && isPythagTriple(a,b,c) )
                {
                    cout << a*b*c << " ";
                    break;
                }
            }
        }
    }

    return 0;
}

bool isPythagTriple(int a, int …
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
2
解决办法
505
查看次数

C#中的连续字母

我想在C#中生成连续的字母.

例如,变量的第一个值是"a",后跟"b","c",......在"z"之后,范围将继续"aa","bb",......

就像是

i=0;
while(i<40)
{
   Console.WriteLine(i);
   i++;
}
Run Code Online (Sandbox Code Playgroud)

但是用字母.

c# sequences character

2
推荐指数
1
解决办法
2466
查看次数

CreateRemoteThread,LoadLibrary和PostThreadMessage.什么是适当的IPC方法?

好吧,我正在使用CreateRemoteThread/LoadLibrary "技巧" 将一些代码注入另一个进程.

我最终得到了一个线程ID,并且我选择了一个带有我选择的DLL的进程.至少在理论上,DLL目前什么都不做,因此验证这有点棘手.暂时我愿意仅靠信仰接受它.此外,在我朝这个方向努力之前,需要回答这个问题.

基本上,你不能阻止DllMain.但是,所有我必须与远程线程进行通信的是它的id.这实际上是为了阻止PostThreadMessage/GetMessage的恶作剧.我可以在DllMain中启动另一个线程,但我无法将其id传回给创建线程,也无法将另一个线程的id传递给远程线程.

简而言之,如果我在一个过程中创建一个远程线程,我该如何与原始进程通信?

c++ dll winapi ipc

1
推荐指数
1
解决办法
5351
查看次数

堆腐败

如果我们在新数组和删除char数组之间有大量代码,为什么会出现问题.

void this_is_bad() /* You wouldn't believe how often this kind of code can be found */
{
  char *p = new char[5];    /* spend some cycles in the memory manager */
  /* do some stuff with p */
  delete[] p;      /* spend some more cycles, and create an opportunity for a leak */
}
Run Code Online (Sandbox Code Playgroud)

c++ heap corruption

1
推荐指数
2
解决办法
1711
查看次数

如何在<a> </a>之间提取文本

我必须第一次使用jQuery ....

<a class="Tag Resource" href="http://localhost/" 
resource="http://localres/" property="prop">test</a>
Run Code Online (Sandbox Code Playgroud)

我试图使用提取文本var = $('a').find('Tag Resource').text();,var = $('a').find('Tag Resource').html();但它不起作用.我需要"测试"作为纯文本.

谁能告诉我怎么做?

提前致谢

tags jquery text extract

1
推荐指数
2
解决办法
1721
查看次数

Silverlight相当于签名的Java Applet?

是否有一个Silverlight等同于Java中签名的applet?

我基本上试图在浏览器*中托管传统上的桌面应用程序,而我宁愿在一个软件包(Silverlight端)中完成所有操作,而不是将特权操作委托给外部(本地运行)进程.这需要一些方法来打破Silverlight的沙箱; 我所知道的唯一等价物是Java的签名小程序,我找不到类似的东西.

*这有很好的可用性原因,从技术上讲它确实使事情复杂化

c# security silverlight sandbox signed-applet

1
推荐指数
1
解决办法
1010
查看次数

数组的最大索引大小

以下代码崩溃了我的程序.我发现问题是数组的大小.如果我将尺寸减小到320*320,它可以正常工作.伤口是否有限制是否有意义?如果是这样,什么是解决方法?我正在使用Objective C for IPhone进行编码.任何帮助,将不胜感激.

谢谢!

 int life_matrix[320*350];
 x_size=320;
 y_size=350;
 for (int counter=0; counter < x_size; counter++)
 {
  for (int counter2=0;counter2 < (y_size); counter2++)
  {
   life_matrix[counter*(int)x_size+counter2] = rand()%2;
  }
 }
Run Code Online (Sandbox Code Playgroud)

arrays objective-c

1
推荐指数
1
解决办法
1821
查看次数

1
推荐指数
1
解决办法
846
查看次数