在类

时间:2016-03-19 21:13:29

标签: c++ multithreading mfc visual-studio-2015 usb

我对使用mfc函数

有一个概念
AfxBeginThread(AFX_THREADPROC pfnThreadProc,
   LPVOID pParam,
   int nPriority = THREAD_PRIORITY_NORMAL,
   UINT nStackSize = 0,
   DWORD dwCreateFlags = 0,
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
);

显然AFX_THREADPROC类型是一个参考。这是有效的。 所以在类(构造函数)中,我调用此函数来启动一个线程 使用线程路由调用MyThreadProc()引用如下。

pfnThreadProc =& MyThreadProc;

我从MyThreadProc()定义的另一个程序中复制了这个用法 课外(称之为USBCom)。这很好。线程得到了 开始。我调试它完成就好了。大。然后我才意识到 这个线程例程必须调用其他成员函数来获取它 工作线程职责完成。我试着在里面打电话

.. USBCom:MyMemberFunc()..

无济于事。然后我把这个MyThreadProc()移到我的班级里面 USBCom。编译我无法使用AfxBeginThread()的这种实例。

我认为& MyThreadProc()是问题(它指向的是什么)。 可能是一些关于不允许成员函数地址的标准 传递 - 整个封装。

那我该如何解决这个困境呢?我可以在课堂上开始一个帖子 线程proc在类之外但是具有访问权限或perview的地方 启动它的类中的成员函数。

作为一些背景,这个线程的目的是读取状态 我正在使用的USB端口以及通过USB 2.0发送给我的数据。 我有性能里程碑要见面,所以我希望这是精益的。我如何能 做到了吗?

Maddog

ps:我正在与FDDi FT240XS USB FIFO进行通信。

2 个答案:

答案 0 :(得分:0)

混淆源于使用“&”之间的区别作为“地址”与“参考”

What are the differences between a pointer variable and a reference variable in C++?

TL; DR:

$zapytanie1 = "SELECT * FROM tabelka2";
$wykonaj1 = mysql_query($zapytanie1);
while($dane1 = mysql_fetch_array($wykonaj1))
{
$idzs = $dane1['id'];
$zapytanie2 = "SELECT * FROM tabelka2 WHERE dane=$idzs";
$wykonaj = mysql_query($zapytanie2);
while($dane2 = mysql_fetch_array($wykonaj2))
{
$nazwa = $dane2['name'];
}
echo $nazwa;
}

我希望这会有所帮助

答案 1 :(得分:0)

我认为找到答案,并不是说你的工作也不行。它 更复杂的是,我有许可问题必须得到解决 同样。现在就完成了。

无论如何,我的回答是我必须公开这些方法。我读过了 指向已将此类实例化为

的对象的指针
In [93]:
years = count[count['date'] >= 365].index
df[df['date'].dt.year.isin(years)]

Out[93]:
           date         A
0    2007-01-01  0.020745
1    2007-01-02  0.030024
2    2007-01-03 -0.385793
3    2007-01-04 -0.737720
4    2007-01-05  0.089707
5    2007-01-06 -0.820141
6    2007-01-07 -0.081740
7    2007-01-08  0.233265
8    2007-01-09  1.336224
9    2007-01-10  0.570297
10   2007-01-11 -0.280080
11   2007-01-12 -1.582950
12   2007-01-13  0.494927
13   2007-01-14  2.065250
14   2007-01-15 -2.406877
15   2007-01-16  0.124046
16   2007-01-17 -1.015604
17   2007-01-18  1.480173
18   2007-01-19  0.705919
19   2007-01-20 -2.014657
20   2007-01-21  0.130874
21   2007-01-22 -0.138736
22   2007-01-23  1.874702
23   2007-01-24 -0.170154
24   2007-01-25 -1.548015
25   2007-01-26 -0.878455
26   2007-01-27 -0.871497
27   2007-01-28  1.992482
28   2007-01-29  0.565247
29   2007-01-30  1.257662
...         ...       ...
2892 2014-12-02 -1.052277
2893 2014-12-03  0.123017
2894 2014-12-04 -0.970947
2895 2014-12-05 -0.821208
2896 2014-12-06 -0.027118
2897 2014-12-07 -0.100033
2898 2014-12-08  0.954733
2899 2014-12-09  0.388998
2900 2014-12-10  0.667443
2901 2014-12-11  1.580804
2902 2014-12-12  0.724011
2903 2014-12-13 -2.156507
2904 2014-12-14  0.736236
2905 2014-12-15  0.863674
2906 2014-12-16 -0.204992
2907 2014-12-17  0.976307
2908 2014-12-18  1.456367
2909 2014-12-19 -0.516854
2910 2014-12-20 -0.140291
2911 2014-12-21  1.467225
2912 2014-12-22  0.957542
2913 2014-12-23  2.061477
2914 2014-12-24  0.202104
2915 2014-12-25  0.806140
2916 2014-12-26 -0.478380
2917 2014-12-27  1.109158
2918 2014-12-28 -0.598417
2919 2014-12-29 -1.283922
2920 2014-12-30  0.546390
2921 2014-12-31 -0.640812

[2922 rows x 2 columns]

其中myPublicFunct()是MyClass()类的成员函数。

在我想到之后,我有多傻。

感谢您的帮助。

Maddog