我在 Visual Studio 2012 中使用 C++/CLI 创建了一个项目。GUI 是在 C++ Builder XE2 中制作的,我想从 VS C++ 2012 导入生成的 DLL,但我无法正确导入它。
HINSTANCE load = LoadLibrary(library);
if (!load)
ShowMessage("Error importing the library");
不幸的是,当我在使用 LoadLibrary 函数后运行代码时,变量 load 为 NULL。有什么帮助吗?
我不明白我需要使用 C++ Builder 中的一些实用程序将 Visual Studio 生成的 DLL 转换为 Borland DLL 格式。
编辑:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace cv;
using namespace std;
//Function declarations
__declspec(dllexport) void __stdcall TestCV();
//-------------------------------------------------------------------------------------------------
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
return TRUE;
}
//-------------------------------------------------------------------------------------------------
void __stdcall TestCV()
{
Mat image;
image = imread("a.PNG", IMREAD_COLOR); // Read the file
if(! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return;
}
namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
}
//-------------------------------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{....}
谁能帮助我将上述源代码生成的 DLL 从 Visual Studio C++/CLI 导入到 C++ Builder 中?
Edit2 我做了一个发布版本,我复制了 DLL 项目以及其他 DLL 文件(我使用 OpenCV)。现在我从 C++ Builder 项目中收到以下问题:
Runtime Errror!
Program:
R6033
-Attempt to use MSIL code from this assembly during native code initialization
This indicates a bug in your application. It is most likely the result of a calling a MSIL-compiled (/dlr) function from a native consturctor or from a DLLMain