说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我的问题怎么老是出现在这个地方。。。。

编辑:说三道四文库 发布时间:2017-11-22 09:09
HTML文档下载 WORD文档下载 PDF文档下载
内容如下
我在每次做动态连接库的时候,每次都有如下的提示,即使我用的是一个原本是示例的例子
  提示如下:
  project D:\program files\boland\delphi6\projects \mytest.exe faulted with message:'access violation at 0x77f8f49b:write of 0x00030cb4.'process
stop.use step or run to continue.
动态调用Dll:

typedef DWORD (WINAPI Fun) (DWORD,DWORD);
  HINSTANCE hkDll=LoadLibrary("KERNEL32.DLL");
  Fun*RegisterServiceProcess=(Fun*)::GetProcAddress(hkDll,"RegisterServiceProcess");
  (*RegisterServiceProcess)(NULL,1);
  FreeLibrary(hkDll);
===============
var
  H: HWnd;
  p: procedure(Handle: THandle; Path: PChar); stdcall;
begin
        H := LoadLibrary(PChar('shdocvw.dll'));
        if H <> 0 then
          begin
            p := GetProcAddress(H, PChar('DoOrganizeFavDlg'));
            if Assigned(p) then p(Application.Handle, PChar(favpath));
          end;
      FreeLibrary(h); 
end;
楼主可能是非法访问了内存,调用了一个不存在的对象才导致这样的问题的,看一看楼主的代码可以吗?
还有,最坏的可能性是:你的DELPHI坏掉了
unit base;

interface

 uses
   Sysutils,windows;
   function Doubl(N:integer):integer;Stdcall;
   function Tripl(N:integer):integer;stdcall;
   function StrWithPad(ps:string;len:integer):string;stdcall;
   function PCharWithPad(BufferIn,BufferOut:PChar;len:integer):LongBool;stdcall;

implementation

function Doubl(N:integer):Integer;Stdcall;
    begin
      MessageBox(0,'jiabei!','mydll',mb_ok);
      Result:=N*2;
    end;
function Tripl(N:integer):Integer;Stdcall;
    begin
       messageBox(0,'sanbei!','Mydll',mb_OK);
    end;
function StrWithPad(ps:string;len:integer):string;stdcall;
    begin
       while Length(ps)<len do
         ps:='0'+ps;
         result:=ps;
    end;
function PCharWithPad(BufferIn,BufferOut:PChar;len:integer):LongBool;Stdcall;
   var
      i:integer;
      tmpInt:integer;
   begin
       Strcopy(BufferOut,'');
       if Length(BufferIn)<len then
           begin
             TmpInt:=len-length(BufferIn);
              i:=0;
              while i<tmpInt do
               begin
               Strcat(BufferOut,'0');
               inc(i);
               end;
               strcat(bufferOut,BufferIn);
               result:=True;
            end
       else
         result:=false;
   end;
end.
这是连接库的部分unit mytest;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs,stdctrls,Spin;

type
  TForm1 = class(TForm)
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;
function Doubl(I:integer):integer;stdcall;external'mydll';
function Tripl(N:integer):integer;stdcall;external'mydll';
function StrWithPad(ps:string;len:integer):string;stdcall;external'mydll';
function Pcharwithpad(bufferin,bufferOut:PChar;len:integer):longbool;stdcall;external'mydll';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpinEdit1Change(Sender: TObject);
var
  tmpInt:integer;
  tmpStr:String;
  begin
   tmpInt:=doubl(spinedit1.Value);
   label1.Caption:=InttoStr(tmpInt);
   setlength(TmpStr,256);
   if PcharWithPad(PChar(label1.Caption),PChar(tmpStr),8) then
   Label3.Caption:=tmpStr;

end;


procedure TForm1.SpinEdit2Change(Sender: TObject);
 var
  tmpInt:integer;
  tmpStr:String;
  begin
   tmpInt:=doubl(spinedit2.Value);
   label2.Caption:=InttoStr(tmpInt);
   setlength(TmpStr,256);
   if PcharWithPad(PChar(label2.Caption),PChar(tmpStr),8) then
   Label4.Caption:=tmpStr;
  end;

end.
 这是主窗体部分。。。
还有,连接库的项目文件定义如下:
library mydll
uses
     base in 'base'
 {$r *.res}
 exports
  doubl,tripl,strwithpad,pCharwithpad;
begin
end.
这是我在示例里抄的一个例题,也是报错。。。
我刚接触delphi 
我现在对delphi还不是很了解。。。。
uses
   ShareMem,
   Sysutils,windows;
在Delphi程序中应用IE浏览器控件 在Delphi中调用NetscapeNavigator 在Delphi中使用flash控件 在Delphi中使用IP控件 在程序中动态取得Win95/98网络邻居中工作组及计算机名-Delphi资料 在程序中获取网络资源信息-Delphi资料 自制THyperLink组件-Delphi资料 报表制作技巧(三)-Delphi资料 Delphi数据库开发及统计表格设计 Delphi文本和图形的打印方法 Delphi应用程序中中国式报表的制作 Windows环境下实时列表输出的实现方法-Delphi资料 报表制作技巧(二)-Delphi资料 Delphi编制的程序运行中动态制作报表 报表制作技巧(一)-Delphi资料 如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制-Delphi资料 也谈为Delphi中数据库报表加网格 用Delphi4的QReport部件生成报表 用Delphi编写打印程序的窍门 用Word做Delphi报表输出工具 在DELPHI 文 本 和 图 形 的 打 印 在Delphi中运用QuickReport实现多栏列印 在打印或打印预览前如何获取报表页数-Delphi资料 自定义快速报表的打印预览窗口-Delphi资料 Delphi 3 图形VCL中Bug修改方案 Delphi hint的字体和色彩如何改变 Delphi3.0中复活节彩蛋及实现 Delphi数据库应用程序开发中图像数据的存取技巧 DELPHI图形编辑技巧二则 DELPHI显示JPEG图像文件 Delphi中CANVAS使用三例 安全模式下目录权限问题 求在服务器生成静态html文件的方案,关键是还能添加内容到html。 Excel里能插入选择框吗 还有关于打印的问题请教各位达人。 问下,象E-book软件那样的书的翻页效果是怎么弄的啊?? 请问怎样将winform上的两点距离转化为float? 56k modem能在linux下上网的都有哪几个牌子以及型号?我的是全向的秋池飞叶,能上吗? sql语句求解! 7月7,好日子,和女友在一起了吗? 请教一个java连接oracle9i的问题~急 谁有PlayCASE可供下载?MrCase.com的网站我打不开啊。 各位兄弟,你们公司上班能上网吗? RegisterServiceProcess需要哪个头文件? 更深露重,有翅膀没翅膀的喜鹊都该回去睡觉了吧?:D 今天有想哭的么? 一道三级上机题帮忙调试,很简单。 DirectShow 音频 视频 同步的问题! 哪里能找到asp.net+MSSQL2000空间? DirectShow 在网络上广播AVI,一开始还好,可是当文件播放了20分钟以后,接收端的声音就明显的和视频不同步了。 form表单的几个问题 谢谢帮助 Client端和Server端的Socket用什么方法判断数据接收完毕? 我觉得vb.net比c#的程序可读性更强一些,大家认为呢? 最近很少来CSDN了更别说VB版了散分 各位高手,请问TREE组件如何用啊? 蝶恋花——写在七夕(淡月儿) 写入数据库的图片 如何读出来啊 急急急 急!!!!!111111111 写入数据库的图片 如何读出来啊 急急急 急!!!!!111111111 求救!!在线等候!! FORTRAN 77與C語言之間互相使用 关于CBCGOutlookBar的问题 如何在Delphi中调用WINRAR或WINZIP动态链接库的接口???(急,急,急......) 请教DataGrid控件新增一行的问题。 在unixware中使用消息队列,当消息队列比较长并且创建的消息队列较多时,出现堵塞? 为什么我调用 GethostName 这个函数 返回值是 O 但是GetLastError 却返回14呢!? 怎么通过http协议联接数据库呢?或者怎么样远程联接数据库? 如何清除ds.tables中的数据 奇怪!用unescape函数解码出来的一部分字符只能用document.write()的方法来显示? 求救!!!!如果我是定向招生读的大学,和定向单位签订11年和约,如果我不想去定向单位工作,该负怎样的法律责任!!!! 冬天来了,春天还会远吗?——中国程序员的春天 请教无标题窗口怎么移动?? 听同学说用一个按钮可以实现后退两页的,那么三页也可以实现吧,怎样写? 用hibernate 如何实现分页 我不太明白这些版本控制到底最大的好处是什么? 程序运行时实时变量出错? 各位老兄,请问在java中怎么解决这样<Node Name="N1" Value="1" />的XML 哪有winamp3的“汉化补丁”,源程序我有 使用CSocket类时出现访问冲突 庆祝网站初建:一般的界面,实用的文章例子,欢迎大家参观我的网站http://vcp4.51.net 帮帮小弟吧~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 请教各位大侠:VFP中SQL语言应该怎么学?? 如何自行编写一个自释放的EXE文件?,分不够,可另开恭送 dll卸除时 我要做一些收尾工作 代码要写在哪里?? 今年几月几日放寒假? 做梦梦到玉佩做梦梦到已故的奶奶给我两块玉佩 ,让我带着.其中一块五颜六色圆的偏大 ,一块白色偏小. 为什么要纤夫拉船?拜托各位了 3Q 纤夫的意思是什么?有好评^_^ 一条船在平直的河道中,由两岸纤夫拉着沿OA方向前进,水流作用可忽略不计.岸这边的纤夫以恒力F1拉船,那么对岸纤夫朝什么方向用力拉船时用力最小?为多大? 这是谁?快速,准确, 【求助】如何计算实验数据与已知方程的相关系数? 知识产权保护法属于什么法 国家为什么要制定保护知识产权的一系列法律文? .已知,△ABC中,AB=AC,∠A=100°,CD平分∠ACB,求证:AD+DC=BC 如图所示,在△ABC中,∠C=90°,AD平分∠BAC交BC于D,若DC=4,则点D到AB的距离为________.❤麻烦过程清晰点,思路明确.别东一句西一句的.❤ 法国两记者命丧马里俄罗斯严防“黑寡妇”袭击 确保冬奥会德国政府代表批评日本:对东亚紧张局势日本未从日俄会谈获实质成果 牵制中国教育经费管理存在多项问题 回应质疑制日本未从日俄会谈获实质成果 牵制中国多地汽车限行 分析称重污染后实行不会德国政府代表批评日本:对东亚紧张局势北京雾霾刚去 寒衣节不少市民当街焚烧樊纲:中国经济软着陆基本完成 最低谷跨界污染仍存争议 外媒称中国正努力解4万人次捧场 交易额超2800万元银行网上支付成功率平均86.42%“金融知识进万家”宣传服务月活动《中华人民共和国旅游法》知识竞赛试题个人微博加V需开单位证明宾利成都:今年要卖200台普京是这样看奥巴马的:我国已设立金融监管协调机制老人被碾伤后获误工补偿全运会让45岁的张山很快乐从门卫到教师 知识给杨安国的梦想插上
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘