标签: wrapper

用于为COM DLL创建.NET包装器的工具?

是否有任何开源工具可以自动为COM DLL库生成.NET包装器?

.net c# com wrapper

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

容器和包装器之间的区别

在编程语言(例如,Java),有什么之间的差异containerwrapper(或者是有区别).我听过这两个术语含糊不清.

containers wrapper

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

包装类 - 为什么整数文字因Long而失败,但适用于任何较小的文本

只是想了解自动拳击,我做了一件事:

Short s = 250;
Long l = 250;
Run Code Online (Sandbox Code Playgroud)

分配Long l失败.我希望这是因为你不能加宽那个盒子(即它试图将int值加宽250到a long,然后将它打包,它不能这样做).

但是,作业的分配Short s.怎么回事呢?我的假设是它还在做拳击和某种转换.但是,如果它是一个知道250适合a的情况short,为什么它不知道250将适合一个long

java autoboxing wrapper

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

如何将可执行JAR文件打包到EXE中

我想将我的最终版本部署为带有应用程序Icon的EXE.

做这个的最好方式是什么?常见的做法是什么?

java deployment executable exe wrapper

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

如何包装一个在C中返回智能指针的C++函数?

我需要换一些API在++库中C.我在过去做到了这一点,使用不透明的指针类对象C,为extern"C"等描述这里.但是,我正在处理的这个新库大量使用引用计数智能指针.我不知道如何在有智能指针的情况下进行包装.例如,假设C++库具有以下功能:

SmartPointer<MyClass> foo() {
    SmartPointer<MyClass> ret(new MyClass); // Create smart pointer ret
    ret->DoSomething(); // Do something with ret
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

我如何foo()用C 包裹?显然,我需要一个不透明的指针(像void*或一个空的结构指针),我可以在C函数中使用它来引用该MyClass对象.我想到的第一个选项是从中提取MyClass对象ret,并将其转换为void*.但是,由于智能指针自动删除,void*一旦ret超出范围,这将成为悬空(如果我错了,请纠正我).

另一个选项是分配一个指向智能指针的指针(例如retPtr),do *retPtr=ret,然后创建一个不透明指针retPtr.我认为这个选项可能有效,但这是最好的方法吗?

任何帮助表示赞赏.

c c++ smart-pointers wrapper

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

包装和自动拳击

有以下代码:

Integer time = 12;
Double lateTime = 12.30;
Boolean late = false;
Double result = late ? lateTime : time;  //Why here can I assign an Integer to a Double?
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

它打印:

12.0

这个不编译.为什么?

Integer time = 12;
Double lateTime = 12.30;
Double result = time;      //Integer cannot be converted to Double
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

java autoboxing wrapper

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

如何编写一个C函数的C++包装类方法来进行回调?

给出以下C接口:

IoT_Error_t aws_iot_mqtt_subscribe(AWS_IoT_Client *pClient,
                                   const char *pTopicName,
                                   uint16_t topicNameLen,
                                   QoS qos,
                                   pApplicationHandler_t pApplicationHandler, 
                                   oid *pApplicationHandlerData);
Run Code Online (Sandbox Code Playgroud)

" aws_iot_mqtt_subscribe存储其后来引用的参数 - 在稍后的某个时间点响应某些事件来调用"

处理器:

typedef void (*pApplicationHandler_t)(
    AWS_IoT_Client *pClient,
    char *pTopicName,
    uint16_t topicNameLen,
    IoT_Publish_Message_Params *pParams,
    void *pClientData);
Run Code Online (Sandbox Code Playgroud)

我试图将其包装到具有以下接口的C++类中:

class AWS {
// ...
public:
  void subscribe(const std::string &topic,
                 std::function<void(const std::string&)> callback);
// ...
};
Run Code Online (Sandbox Code Playgroud)

我的目标是使捕获lambda函数成为可能AWS::subscribe.我已经尝试了近一个星期的不同方法,但似乎没有一个工作.

如果有任何其他需要了解问题,请告诉我,我很高兴更新问题.

c++ wrapper

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

错误包装/展开&amp;&amp;使用errors.Is()进行类型检查

我正在检查 Go v1.13 Go v1.14 中的错误跟踪。为什么看起来只能找到不带参数或带值接收器的错误实现errors.Is()?这意味着能够包装的错误实现必须有一个值接收器,以便能够通过 找到errors.Is()

package main

import (
    "fmt"
    "errors"
)

type someAtomicError struct {}
func (e *someAtomicError) Error() string { return "Hi!" }
func checkAtomicError() {
    e := &someAtomicError{}
    e2 := fmt.Errorf("whoa!: %w", e)
    e2IsE := errors.Is(e2, &someAtomicError{})
    fmt.Println("atomic error trace ---\t\t", e2, "\t\t--- is traceable: ", e2IsE)
}


type someWrapperError struct {
    Msg string
    Err error
}
func (e someWrapperError) Error() string { return fmt.Sprintf("%s: %v", e.Msg, e.Err) }
func (e …
Run Code Online (Sandbox Code Playgroud)

error-handling trace wrapper go

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

Spring Boot 项目中的 .mvn 文件夹是什么意思?

Spring Boot项目根目录下的.mvn文件夹有什么用?

IntelliJ IDE 项目侧边栏的屏幕截图

包装文件夹是什么意思?其内容 maven-warpper.jarmaven-wrapper.properties位于MavenWrapperDownloader.javamvnw项目文件夹中mvnw.cmd

wrapper maven spring-boot

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

如何使用 pybind11 将原始指针转换为轻量级 python 数据类型?

考虑这个小 pybind11 包装器 + 测试:

安装程序.py

from pybind11.setup_helpers import Pybind11Extension
from pybind11.setup_helpers import build_ext
from setuptools import setup

setup(
    name="wrapper",
    ext_modules=[Pybind11Extension("wrapper", ["wrapper.cpp"])],
    cmdclass={"build_ext": build_ext},
)
Run Code Online (Sandbox Code Playgroud)

包装器.cpp

#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <vector>

namespace py = pybind11;

struct Mesh2d {
public:
  Mesh2d(int numVerts, int numTris)
      : numVertices(numVerts), numTriangles(numTris) {
    vertices = new float[numVerts * 2];
    indices = new int[numTris * 3];
  }

  ~Mesh2d() {
    delete vertices;
    delete indices;
  }

  void makeVertex(int i, float x, float y) {
    vertices[i * 2 + …
Run Code Online (Sandbox Code Playgroud)

c++ python ctypes wrapper pybind11

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