问题列表 - 第22485页

如何在我的C++程序中使用COM dll

我希望在我的C++库中使用COM dll.我想的方法是#import dll的.tlb文件,我做了:

#import "mycom.tlb" no_namespace
Run Code Online (Sandbox Code Playgroud)

问题是,我不太清楚在哪里发表这个声明.它应该在H文件或CPP文件中吗?或者stdafx.h文件?我尝试将它放在.cpp文件中,仅用于测试.

在H文件中我声明了这个成员:

ILogicSecuredPtr m_pbLogic;
Run Code Online (Sandbox Code Playgroud)

(其中ILogicSecured是我想在COM dll中使用的接口)

然后我在构造函数中添加了这个来实例化接口:

CoInitialize(NULL);
m_pbLogic(__uuidof(LogicSecured)); 
Run Code Online (Sandbox Code Playgroud)

(其中LogicSecured是实现接口的对象的名称)

在析构函数中我添加了:

CoUninitialize();
Run Code Online (Sandbox Code Playgroud)

但是,无论我在哪里尝试放置#import声明,都无法编译.它只是无法识别ILogicSecured对象.我在H文件中收到此错误:

Error   2   error C2146: syntax error : missing ';' before identifier 'm_pbLogic'
Run Code Online (Sandbox Code Playgroud)

我还应该提一下,当我在ILogicSecuredPtr声明的F12(在Visual Studio中)时,它会把我带到tlh文件就好了.所以我知道它认出来了.

我在这做错了什么?

非常感谢.Roey

c++ com dll

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

快速确定64位中最右边第n位的方法

我尝试确定最右边的第n位集

if (value & (1 << 0)) { return 0; }
if (value & (1 << 1)) { return 1; }
if (value & (1 << 2)) { return 2; }
...
if (value & (1 << 63)) { return 63; }
Run Code Online (Sandbox Code Playgroud)

如果比较需要做64次.有没有更快的方法?

c++

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

如何在php上创建一个唯一的20个单字节令牌/密钥/ ID?

我需要创建一个令牌/密钥以将其用作数字顺序,因此这应该是唯一的,令牌必须类似于"6X990742MG185953R",因此我们可以像条形码一样使用它,例如.http://barcodes4.me/barcode/c128b/6X990742MG185953R.png

我们不能使用UUID或GUID,因为要长,我们越接近这个:

function uuid64() {
 $uuid = uuid(); // some UUID v4
 $byteString = "";
 $uuid = str_replace("-", "", $uuid);
 for($i = 0; $i < strlen($uuid); $i += 2) {
  $s = substr($uuid, $i, 2);
  $d = hexdec($s);
  $c = chr($d);
  $byteString = $byteString.$c;
 } 

 $b64uuid = base64_encode($byteString);
 // Replace the "/" and "+" since they are reserved characters
 $b64uuid = str_replace("/", "_", $b64uuid);
 $b64uuid = str_replace("+", "-", $b64uuid);
 // Remove the trailing "=="
 $b64uuid = substr($b64uuid, 0, strlen($b64uuid) …
Run Code Online (Sandbox Code Playgroud)

php uuid guid token

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

JGroups吃着记忆

我目前的jgroups配置有问题,导致数千条消息卡在NAKACK.xmit_table中.实际上所有这些似乎最终都在xmit_table中,而几个小时后的另一个转储表明它们从未打算离开...

这是协议栈配置

UDP(bind_addr=xxx.xxx.xxx.114;
bind_interface=bond0;
ip_mcast=true;ip_ttl=64;
loopback=false;
mcast_addr=228.1.2.80;mcast_port=45589;
mcast_recv_buf_size=80000;
mcast_send_buf_size=150000;
ucast_recv_buf_size=80000;
ucast_send_buf_size=150000):
PING(num_initial_members=3;timeout=2000):
MERGE2(max_interval=20000;min_interval=10000):
FD_SOCK:
FD(max_tries=5;shun=true;timeout=10000):
VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(discard_delivered_msgs=true;gc_lag=50;retransmit_timeout=600,1200,2400,4800;use_mcast_xmit=true):
pbcast.STABLE(desired_avg_gossip=20000;max_bytes=400000;stability_delay=1000):UNICAST(timeout=600,1200,2400):
FRAG(frag_size=8192):pbcast.GMS(join_timeout=5000;print_local_addr=true;shun=true):
pbcast.STATE_TRANSFER
Run Code Online (Sandbox Code Playgroud)

启动消息......

2010-03-01 23:40:05,358 INFO  [org.jboss.cache.TreeCache] viewAccepted(): [xxx.xxx.xxx.35:51723|17] [xxx.xxx.xxx.35:51723, xxx.xxx.xxx.36:53088, xxx.xxx.xxx.115:32781, xxx.xxx.xxx.114:32934]
2010-03-01 23:40:05,363 INFO  [org.jboss.cache.TreeCache] TreeCache local address is 10.35.191.114:32934
2010-03-01 23:40:05,393 INFO  [org.jboss.cache.TreeCache] received the state (size=32768 bytes)
2010-03-01 23:40:05,509 INFO  [org.jboss.cache.TreeCache] state was retrieved successfully (in 146 milliseconds)
Run Code Online (Sandbox Code Playgroud)

...表示到目前为止一切都很好.

设置为警告级别的日志并不表示除了某种情况之外出现了问题

2010-03-03 09:59:01,354 ERROR [org.jgroups.blocks.NotificationBus] exception=java.lang.IllegalArgumentException: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

我猜的是不相关的,因为早在没有内存记忆问题的情况下就已经看到了它.

我一直在挖掘其中一台机器的两个内存转储器以找到奇怪的东西,但到目前为止还没有.除了可能来自不同协议的一些统计数据

UDP有

num_bytes_sent 53617832
num_bytes_received 679220174
num_messages_sent 99524
num_messages_received 99522
Run Code Online (Sandbox Code Playgroud)

虽然NAKACK有...... …

jgroups

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

使用任意类型的给定参数进行任意操作的任何建议?

基本上我只想使用任意类型的给定参数进行任意操作.

参数类型基类是Var,而Operation是将为给定参数执行的操作的基类.

我有Evaluator类,它包含使用opId映射的运算符集合.Evaluator将根据evaluate()成员函数中给出的opId参数进行操作,然后evaluate()函数将搜索将接受参数类型和opId的受支持运算符.

我想问的是,有没有有效的模式或算法可以在没有dynamic_cast <>和/或循环运算符集合的情况下执行此操作.

`

class Var {
public:
    bool isValidVar();
    static Var invalidVar();
}

template<typename T> class VarT : public Var {
public:
    virtual const T getValue() const;   
}

class Operator {
public:
    virtual Var evaluate(const Var& a, const Var& b) = 0;
}

template<typename T> class AddOperator : public Operator {
public:
    virtual Var evaluate(const Var& a, const Var& b)
    {                             //dynamic_cast is slow!
        const VarT<T>* varA = dynamic_cast<const VarT<T>*>(&a);
        const …
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns dynamic-cast generic-programming

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

在选择中使用VBA设置类别似乎在Outlook 2007中不起作用

我正在尝试为当前选择设置邮件消息类别.当我运行宏时,我最终只将一条消息设置为给定的类别.我使用以下代码(并且还尝试使用do until..loop使用selection.count):

Sub SetSelectionComplete()
    Dim mailMsg As MailItem

    For Each mailMsg In Outlook.Application.ActiveExplorer.Selection
        mailMsg.Categories = "Complete"
    Next

End Sub
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

outlook vba

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

使用jQuery选择pdf urls

我想选择带有pdf文件扩展名的网址,并使用jQuery或PHP单独列出pdf.

谢谢让

php jquery

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

C#如何快速生成正确的错误以进行测试

我的错误处理程序中有一些代码我需要针对实际错误进行测试.如何生成具有完整堆栈跟踪的错误,并且与运行时错误一样真实.

我正在使用异常的常规捕获.因此,在这种特殊情况下不需要特定类型的异常.

谢谢

c#

12
推荐指数
4
解决办法
9908
查看次数

手动定义乳胶中的页码?

我正在乳胶中编辑一个100多页的文档,文档类是"书".该文档的前几页有罗马页码,其余页面阿拉伯页码开头.即文档具有页码i-iv,接着是页面1-120.但是,我想要的是页面:vii-ix,然后是1-120页.(原因:我在最终由乳胶生成的PDF之前插入了一些其他PDF页面,这显然导致所有后续页面数量更高).

那么如何才能将罗马页码增加到更高的数字(但不能同时增加阿拉伯语页码)?

谢谢.

latex

16
推荐指数
2
解决办法
6万
查看次数

禁用UIPickerView

有没有办法让UIPickerView只读?这意味着用户无法翻阅选项.

PS.这与在didSelectRow方法中不传递任何内容不同,因为我只希望用户看到选择器在那里而不是触摸它.

uipickerview ios

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