XPCOM 组件中的 _beginthread 错误 C2440

发布于 2024-08-07 06:07:25 字数 691 浏览 5 评论 0原文

我想在 XPCOM 组件中启动线程。 这是创建线程的代码

nsresult rv = NS_OK;
    nsCOMPtr<Callback> obj = do_CreateInstance("@jscallback.p2psearch.com/f2f;1", &rv);
    NS_ENSURE_SUCCESS(rv, rv);
    char* str="Hello from C++";
    _beginthread( (void(*)(nsCOMPtr<Callback> ))&P2P::test, 0,obj);

    return NS_OK;//obj->Status(str);

这是一个函数,

#include "winsock2.h"
#include <process.h>
#include "nsCOMPtr.h"
#include "Callback.h"
class P2P{
public:
    void test(nsCOMPtr<Callback> obj){

}

};

我收到错误为

错误 C2440: 'typecast' : 无法从 'void (__thiscall P2P::* )(nsCOMPtr)' 转换为 'void (__cdecl *)(nsCOMPtr) '

I want to start thread in XPCOM Component.
Here is a code for creating thread

nsresult rv = NS_OK;
    nsCOMPtr<Callback> obj = do_CreateInstance("@jscallback.p2psearch.com/f2f;1", &rv);
    NS_ENSURE_SUCCESS(rv, rv);
    char* str="Hello from C++";
    _beginthread( (void(*)(nsCOMPtr<Callback> ))&P2P::test, 0,obj);

    return NS_OK;//obj->Status(str);

Here is a function

#include "winsock2.h"
#include <process.h>
#include "nsCOMPtr.h"
#include "Callback.h"
class P2P{
public:
    void test(nsCOMPtr<Callback> obj){

}

};

I am getting error as

error C2440: 'type cast' : cannot convert from 'void (__thiscall P2P::* )(nsCOMPtr)' to 'void (__cdecl *)(nsCOMPtr)'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心如荒岛 2024-08-14 06:07:25

使 P2P::test 静态并添加 __cdecl 调用约定。

Make P2P::test static and add __cdecl calling convention.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文