我要调用的东西的名称是mcs_sc.dll另外还有mcs_sc.h和mcs_sr.lib
请问如果效用其中的函数,delphi建立的工程需要包含什么文件吗?需要安装什么package或者什么library吗?
我现在在delphi的implementation下面添加了下面的代码:
function MCS_InitComm (bPort : Byte; dwCommBaudRate : Longint) : Integer; stdcall;
external 'MCS_SR.dll' Name 'MCS_InitComm';
在一个button的事件中写了下面的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer ;
a : String ;
begin
i := mcs_initcomm(0,19200);
showmessage(inttostr(i)) ;〕
end;MCS_InitComm 函数是在vb编写的dll中定义的,如果这个函数的返回值是0代表调用成功,如果不为0代表调用错误 我在这个delphi的工程中没有作任何修改,就是一个刚刚建立的工程,但是他的返回值是一个很大的数,如果放在另外一个工程中是另外一个值,但是同一个工程中的值不管运行多少遍都是一样的! 请问在什么地方出了问题?
请问如果效用其中的函数,delphi建立的工程需要包含什么文件吗?需要安装什么package或者什么library吗?
我现在在delphi的implementation下面添加了下面的代码:
function MCS_InitComm (bPort : Byte; dwCommBaudRate : Longint) : Integer; stdcall;
external 'MCS_SR.dll' Name 'MCS_InitComm';
在一个button的事件中写了下面的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer ;
a : String ;
begin
i := mcs_initcomm(0,19200);
showmessage(inttostr(i)) ;〕
end;MCS_InitComm 函数是在vb编写的dll中定义的,如果这个函数的返回值是0代表调用成功,如果不为0代表调用错误 我在这个delphi的工程中没有作任何修改,就是一个刚刚建立的工程,但是他的返回值是一个很大的数,如果放在另外一个工程中是另外一个值,但是同一个工程中的值不管运行多少遍都是一样的! 请问在什么地方出了问题?
解决方案 »
- 可以报表文件保存到access中吗
- 如何用DBGrid来实现将列中相同值的行进行合并?
- 有关查询的问题
- 如何把程序与IE集成到一起?就是怎样把特定的文件格式,用自己的程序嵌入到IE中打开??
- 为什么Inside VCL看不懂
- 拿位大虾有mcisendstring的详细字符串资料,发上来共享一下好吗???--急
- 如何用query取得存儲過程的返回值
- 一个char型数组中每8位中均装有16进制数据,如何将其转换成整型数据?(100分)
- 使用install shield for delphi5制作的安装包在其他机器上出现($2109)错误
- 还要麻烦大家:我做了个简单的数据库,但.....
- 【求助】问一个很简单的入门问题
- 很简单自动生成号码
**个人意见,仅供参考
DLLRegisterServer may not be exported,or a corrupt version of MCS_SR.dll may be in memory.
Consider using PView to detect and remove it. 这个时候应该怎么办?
是不是把exports快中,应该给出对外开放的函数借口的。例如:
exports
MCS_InitComm index 1 这种类似的语句。你的问题至少出在dll中,因为你不能注册,说明系统都识别不出来你的dll,何况你开发的程序呢。
还是侃侃dll的工程吧。
你就把DLL放到你EXE一个目录下,然后在delphi里声明:
function MyDllFunction() ;external yourdll.dll;
就可以了
它的long才等于delphi的integer
你考虑一下是不是这个原因