我想将内部对象的一些功能公开为DLL - 但该功能使用变体.但我需要知道:我可以使用Variant参数导出函数和/或返回 - 或者更好地转到仅字符串表示形式?
什么是更好的,从语言无关的POV(消费者不是用Delphi制作 - 但所有将在Windows中运行)?
我在一些ASP页面中嵌入了VB6 DLL.DLL攻击Codebase数据库,这是一个令人沮丧和过时的数据库引擎(dBase上的方言/变体),几乎没有人听说过.Codebase花了将近一秒时间来初始化一个新连接,这种速度慢得令人无法接受,所以我创建了一个由VB类管理的连接池.此类的单个实例是在VB模块的开头创建的,即:
Private m_codebaseManager As New CodebaseManager
Run Code Online (Sandbox Code Playgroud)
我的问题是定期再次调用类初始化方法完全破坏我的池类,我不知道为什么.终止不会触发,并且没有发生任何崩溃的迹象,那么为什么在地球上初始化被称为?我的理解是非类模块中的数据在DLL的生命周期中持续存在.这是正确的,如果没有,在什么情况下模块"重启"?
我尝试在Delphi中调试COM dll(TAutoObject),我的断点不是绿色.
我把我这样的选择:
我的测试很好,但在Delphi中没有断点
这是怎么回事?
我的电脑msvcp80.dll在不同的目录中有这么多.并且有不同的版本:
8.00.50727.762
8.00.50727.1433
...
Run Code Online (Sandbox Code Playgroud)
我还找到了msvcp80.dll的副本c:\windows\system32.
c:\windows\system32\msvcp80.dll吗?感谢您的回答和评论提前.
我正在尝试在我的图形应用程序中使用晶体空间api. 水晶空间网站
应用程序编译正常,但我有dll(动态链接库)的地狱.编译后的应用程序在运行时崩溃,我怀疑它是因为没有找到所需的dll.
我目前唯一的解决方案是将我的应用程序可执行文件剪切并粘贴到具有所有必需库的文件夹中(大约300mb).
有没有办法,我可以找到我的应用程序需要的dll,以便我可以复制它们?(而不是使用所有的dll)
任何帮助将不胜感激.
PS:我正在使用g ++和codeblocks ide
来自博士
我有一个Dllmain,当一个线程附加到这个DLL时,它分配Thread本地存储.代码如下:
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
LPVOID lpvData;
BOOL fIgnore;
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
onProcessAttachDLL();
// Allocate a TLS index.
if ((dwTlsIndex = TlsAlloc()) == TLS_OUT_OF_INDEXES)
return FALSE;
// how can it jump to next case???
case DLL_THREAD_ATTACH:
// Initialize the TLS index for this thread.
lpvData = (LPVOID) LocalAlloc(LPTR, MAX_BUFFER_SIZE);
if (lpvData != NULL)
fIgnore = TlsSetValue(dwTlsIndex, lpvData);
break;
...
Run Code Online (Sandbox Code Playgroud)
}
我知道对于主线程,根据Microsoft文档,未输入DLL_THREAD_ATTACH.但是,上面的代码有效.我使用的是VC2005.当我进入调试器时,我看到在ul_reason_for_call = 1后输入DLL_THREAD_ATTACH的情况!怎么会发生这种情况?如果我在DLL_PROCESS_ATTACH块的末尾添加"break",则DLL无法工作.
怎么会发生这种情况?
我有一个使用多个C++ DLL的非托管Win32 C++应用程序.每个DLL都需要使用类Foo - 定义和实现.
Foo.h和Foo.cpp在哪里生存,以便DLL链接并且最终不会在内存中复制代码?
这是合理的事吗?
[编辑] 下面的所有答案和评论都有很多好的信息- 不仅仅是我标记为答案的那些.感谢大家的投入.
我使用C#的基本实用程序编写了一个dll库.但是为了平台独立性,我想把它移植到silverlight.可能吗?如果可能的话,该怎么做?
或者你们有其他建议吗?
我有一个dll,称之为dllA和dllA引用dllB.当我将dllA放在我的asp.net应用程序的bin文件夹中,并在dllA中调用引用dllB的方法时,asp.net应用程序抛出错误,说找不到dllB.我还要将dllB添加到asp.net bin文件夹中.我的问题是为什么,如果我只是从dllA引用dllB中的类,我是否必须在bin文件夹中添加dllB和dllA?
dll ×10
c++ ×3
c ×2
delphi ×2
delphi-2010 ×2
winapi ×2
asp-classic ×1
asp.net ×1
bin ×1
c# ×1
com ×1
debugging ×1
game-engine ×1
graphics ×1
installer ×1
silverlight ×1
variant ×1
vb6 ×1
visual-c++ ×1
windows ×1