可能是一个简单的问题,但我只有Linux来测试不需要__declspec(dllexport)的代码.在当前的代码中__declspec(dllexport)位于.h文件中的所有文件的前面,但就在cpp文件中50%的函数前面,所以我想知道它们是否真的需要在cpp文件中?
有没有办法反编译一个DLL和/或.pyd文件,以提取用Python编写的源代码?
提前致谢
我的服务器上有我的脚本,因此我没有可用的UI交互,必须使用DLL而不是控制台应用程序.
如何从VBScript中调用C#DLL中的函数?
如何制作我的DLL COMVisible
?我需要注册吗?
我正在尝试做一些在常规MSVC中很容易做的事情,但在VC++ Express中不容易支持.
VC++ Express中没有资源编辑器.所以我在我的DLL项目中添加了一个名为version.rc的文件.该文件具有以下内容,该内容由资源编译器编译并添加到最终的DLL中.使用reshacker可以在DLL中查看此资源,但在Windows资源管理器中右键单击DLL时则不行.
我的RC文件中缺少什么来使其在右键单击时显示?
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "something Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "something"
VALUE "LegalCopyright", "Copyright (C) 2008 Somebody"
VALUE "OriginalFilename", "something.exe"
VALUE "ProductName", "something Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
Run Code Online (Sandbox Code Playgroud) c++ dll resources visual-c++-2008-express visual-studio-2008
你好软件开发人员.
我想通过嵌入Python解释器来分发可编写脚本的C程序.
C程序使用Py_Initialize,PyImport_Import等来完成Python嵌入.
我正在寻找一个解决方案,我只分发以下组件:
我怎么能做到这一点?那是一个循序渐进的食谱吗?
该解决方案应该适用于Windows和Linux.
提前致谢.
我对汇编语言非常感兴趣,我想了解exe文件如何运行dll如何运行等等...我有一个编写应用程序来反编译exe汇编代码的想法,因为我不是一个非常好的汇编程序员和由于缺乏对exe内部工作的了解,我无法做到.因为我可以读取十六进制的exe,我认为这不是不可能,但我不知道如何编写我自己的程序.任何资源或任何帮助将不胜感激.
我在MS-Office DLL中窥探了一下,我发现有些DLL没有任何导出功能.我不太明白,应用程序如何在没有导出任何功能的情况下使用这些DLL?
我的意思是,dllmain()确实在LoadLibrary()上执行,但最重要的是什么?为什么有人会创建没有导出函数的DLL?
谢谢!:-)
我有一个问题要问你.
我有一个C++源代码和一个头文件.C++文件使用windows.h库,使用串口进行操作(基本操作:read(),write()等).
我想要做的是,使用这些文件创建一个库,并在我的C#.Net解决方案中使用该库.
我需要创建什么类型的库?我该怎么做?创建库后,如何将其导入C#解决方案?
我最诚挚的问候.
我正在使用的代码部件:
// MathFuncsDll.h
namespace MathFuncs
{
class MyMathFuncs
{
public:
// Returns a + b
static __declspec(dllexport) double Add(double a, double b);
// Returns a - b
static __declspec(dllexport) double Subtract(double a, double b);
// Returns a * b
static __declspec(dllexport) double Multiply(double a, double b);
// Returns a / b
// Throws DivideByZeroException if b is 0
static __declspec(dllexport) double Divide(double a, double b);
};
}
// MathFuncsDll.cpp
// compile …
Run Code Online (Sandbox Code Playgroud) 我需要动态链接我创建的库.我不确定问题是什么.这一切编译正确,但我总是赶上handle
为NULL
指针:
void *handle;
char *error;
handle = dlopen ("./hw11-lib-michaelSchilling.so", RTLD_LAZY);
//same error comes up with full path as well as './hw11...'
if(!handle){
error = dlerror();
printf("%s\n", error);
printf("Error loading library.\n");
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我无法通过这个错误,我不确定什么可能是错的.我很确定我已经正确编译了所有内容.以下是我使用的编译步骤:
gcc -rdynamic -c hw11-lib-michaelSchilling.c -o hw11-lib-michaelSchilling.so
gcc hw11-michaelSchilling-4.c -ldl -o hw11-michaelSchilling-4
Run Code Online (Sandbox Code Playgroud)
我收到的错误是读取的
只能加载ET_DYN和ET_EXEC.
假设EXE和DLL使用相同的编译器和STL版本.如果我在我的EXE中使用std :: vector并使用reserve来保留内存.然后我将它作为DLL的引用传递给它.
我在DLL中执行push_back以向我的向量添加元素.如果我没有超过实际容量,那么在DLL或EXE中分配的新元素的内存是多少?
dll ×10
c++ ×5
c ×2
c# ×2
decompiling ×2
python ×2
assembly ×1
c++11 ×1
distribution ×1
dllexport ×1
exe ×1
extraction ×1
pyd ×1
resources ×1
serial-port ×1
stl ×1
vbscript ×1
vector ×1
windows ×1