VB.NET如何传递字符串给VC++编写的DLL? 10
如题。我在网上找了相关方法,还是解决不了,这里请高手不吝赐教。我在VB.NET调用如下:PublicDeclareFunctionSetFilePathLib"NvtGe...
如题。我在网上找了相关方法,还是解决不了,这里请高手不吝赐教。
我在VB.NET调用如下:
Public Declare Function SetFilePath Lib "NvtGenBinDll.dll" (ByRef path As Byte) As Boolean
我在VC++ 写的DLL如下:
#define MAX_BUFFER_SIZE 8192
char buffer[MAX_BUFFER_SIZE];
BOOL __stdcall SetFilePath(char* path)
{
if (strlen(path)<MAX_BUFFER_SIZE-1)
{
strcpy(buffer,path);
CString s = (CString)buffer;
AfxMessageBox(s); //仅供测试用
return TRUE;
}else{
return FALSE;
}
}
使用VB.NET调用这个DLL函数时,只能传递第1个字符。这个要怎么解决呢? 展开
我在VB.NET调用如下:
Public Declare Function SetFilePath Lib "NvtGenBinDll.dll" (ByRef path As Byte) As Boolean
我在VC++ 写的DLL如下:
#define MAX_BUFFER_SIZE 8192
char buffer[MAX_BUFFER_SIZE];
BOOL __stdcall SetFilePath(char* path)
{
if (strlen(path)<MAX_BUFFER_SIZE-1)
{
strcpy(buffer,path);
CString s = (CString)buffer;
AfxMessageBox(s); //仅供测试用
return TRUE;
}else{
return FALSE;
}
}
使用VB.NET调用这个DLL函数时,只能传递第1个字符。这个要怎么解决呢? 展开
1个回答
2015-07-21
展开全部
include<iostream>
using namespace std;
char *deletechar(char *a)
{
int len=strlen(a);
char *b=new char();
int k=0;
for(int i=0;i<len;i++)
{
if(a[i]>='0' && a[i]<='9')
{
b[k]=a[i];
k++;
}
}
using namespace std;
char *deletechar(char *a)
{
int len=strlen(a);
char *b=new char();
int k=0;
for(int i=0;i<len;i++)
{
if(a[i]>='0' && a[i]<='9')
{
b[k]=a[i];
k++;
}
}
追问
谢谢!但是VB.NET这边要怎么做呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询