rust - 如何在板条箱中的二进制文件和 cdylib 之间共享代码?
问题描述
我正在构建一个挂钩一些 Windows 事件的应用程序。钩子代码必须在 DLL 中才能工作。我[lib]
用crate-type = ["cdylib"]
in设置Cargo.toml
并在main.rs
.
│ Cargo.toml
│
└───src
lib.rs
main.rs
有用。
我想添加第二个二进制文件,所以使用这个结构:
└───src
│ lib.rs
│
└───bin
bin1.rs
bin2.rs
有用。
bin1.rs
并且bin2.rs
有一些我想移动到新app.rs
模块的重复代码,所以我试试这个:
└───src
│ lib.rs
│
└───bin
app.rs
bin1.rs
bin2.rs
这会导致错误'main' function not found in crate 'app'
。这是因为其中的所有文件bin
都应该被构建为二进制文件。
我搬出app.rs
并bin
尝试不同的结构:
└───src
│ lib.rs
│ app.rs
│
└───bin
bin1.rs
bin2.rs
使用该结构,bin1.rs
并且bin2.rs
无法访问app.rs
.
通常共享代码会进入lib.rs
,但那是我的 DLL。
这种情况应该如何处理?
解决方案
推荐阅读
- upwork-api - 在 Upwork 中,有人将我添加到房间中,但在我的消息中不可见
- c++ - 关于向量中字符串的快速排序的一个快速问题(c++)
- ndis - 复制 NetBufferListInfo 数组而不是调用 NdisCopySendNetBufferListInfo?
- spring-batch - 如何通过在春季批处理中拆分一组列来读取一个csv文件并写入不同的表
- ipc - 如何在systemverilog中获取信号量的大小(或)多少个键
- angular - 具有兼容范围选择器的 Ngx-mat-datetime-picker
- python - 固定大小的框架停留在窗口底部
- c# - 获取 AD 组成员的 DirectoryEntry 时如何处理特殊字符?
- node.js - 由于 Puppeteer 问题,无法安装 PagedJS
- botframework - 试图了解 ActivityProcessed 标志如何与 Bot Framework Composer 中的“开始新对话框”操作一起使用